2011-08-30 55 views
0

我有一个UIPickerView作为inputView的自定义UIControl子类。轻击控件时,它会调用becomeFirstResponder,并且选取器视图会自动从屏幕底部向上滑动,如系统键盘。这非常棒!如何获得正确的动画:从UINavigationController的导航栏中输入视图?

问题是我正在使用自定义控件作为UINavigationItem的titleView。它的功能正常,但如果视图控制器从导航控制器堆栈弹出,而选取器视图可见,则动画是不可靠的。

我希望发生什么:

  • 一切都在同一时间屏幕推偏右

实际发生的:

  • 第一,背景视图和导航栏滑出屏幕,选取器保持原位
  • 然后,它们消失后,选取器滑动o在右边也是

当我在视图控制器的主视图中使用自定义控件时,它就像标准键盘一样使用动画。所以看起来好像这是一个“来自”导航栏的功能,它与内部视图分开进行动画制作。

我该如何解决这个问题,以便inputView可以滑出其余的内容?

回答

2

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

[self.navigationController.view endEditing:YES]; 

这会导致输入视图滑下而视图的其余部分滑落到右侧。与系统键盘不完全相同,但不是很明显。