如何使动画正确:来自UINavigationController导航栏的inputView?

时间:2011-08-30 17:15:54

标签: iphone uinavigationcontroller core-animation

我有一个自定义的UIControl子类,UIPickerView作为inputView。点击控件后,它会调用becomeFirstResponder,并且选择器视图会自动从屏幕底部向上滑动,就像系统键盘一样。这很棒!

问题是我使用自定义控件作为UINavigationItem的titleView。它运行正常,但是如果视图控制器在选择器视图可见时弹出导航控制器堆栈,则动画很不稳定。

我想要发生什么:

  • 同时向屏幕右侧推送所有内容

实际发生的事情:

  • 首先,背景视图和导航栏滑出屏幕,选择器保持原位
  • 然后,在它们消失后,拾取器也滑向右侧

当我在视图控制器的主视图中使用自定义控件时,它就像标准键盘一样动画。因此,似乎这是“来自”导航栏的功能,导航栏与内部视图分开制作动画。

如何解决此问题,以便inputView与其余内容一起滑出?

1 个答案:

答案 0 :(得分:2)

原来可以通过在UINavigationController视图上调用endEditing:来解决这个问题。换句话说,在视图控制器中:

[self.navigationController.view endEditing:YES];

这会导致输入视图向下滑动,而视图的其余部分向右滑动。与系统键盘不完全相同,但显然不是很奇怪。