【发布时间】:2014-01-07 23:34:51
【问题描述】:
我希望在 iOS7 中获得类似于 Messages 应用程序(在大多数短信应用程序中也很常见)的行为,其中在对话视图中从屏幕左边缘向右滑动的行为类似于 UINavigationController 中的后退按钮。
我已经设法实现了这种行为,但是,如果键盘在呈现视图中打开,当我开始向后滑动时,键盘会卡住并且在我移动手指时不会随着视图向右移动。我想将键盘和呈现视图作为一个单元进行动画处理,而不是好像键盘位于其他视图之上并且它们在其后面进行动画处理,这就是我现在得到的(参见第二个屏幕截图):
(更新:请注意,键盘最终会在主视图动画完成后消失;我关注的是键盘在滑动过程中的位置, 并且当您在中途继续触摸设备时,这与实际视图不同步。第二个屏幕截图阐明了这种期望的行为。我也想知道为什么它不是默认设置。)
通过简单地在 Xcode 5.0.2 中创建一个新的主从 iPhone 应用程序并在 StoryBoard 中的详细视图(最好在上半部分的某个位置)添加一个文本字段,运行该应用程序,很容易复制该问题,添加一个项目,点击它进入详细视图,然后单击您添加的文本字段。从设备左侧边缘滑动,同时将手指放在设备上,您会发现问题。
期望的行为:
当前行为:
【问题讨论】:
-
请发布您用于设置边缘滑动手势行为的代码。 UINavigationController 应该为您处理键盘,但是如果您正在做一些自定义的事情,那么您可能会遇到这种行为。
-
@NoahWitherspoon 感谢您的评论。我再次尝试通过从头开始创建一个新项目而不编写任何代码来隔离问题:您可以通过简单地创建一个新的 Master-Detail iPhone 应用程序并将一个文本字段拖放到详细视图上来复制此问题。运行应用程序,在主视图中添加一个项目,单击它以转到详细视图。点击文本字段并尝试边缘滑动手势。它会让键盘保持在顶部。
-
你的问题解决了吗?!
标签: ios iphone ios7 keyboard gesture