0
当我在IB(Xcode 5)中将UISearchDisplayController添加到显示在UINavigationController中的UIViewController并按下搜索栏时,搜索栏将被黑色半透明视图覆盖。UISearchDisplayController怪异行为(视频)
下面是视频:http://quick.as/ezrc7bq
我还没有触及任何代码,所以我不知道什么是对那里发生的。
当我在IB(Xcode 5)中将UISearchDisplayController添加到显示在UINavigationController中的UIViewController并按下搜索栏时,搜索栏将被黑色半透明视图覆盖。UISearchDisplayController怪异行为(视频)
下面是视频:http://quick.as/ezrc7bq
我还没有触及任何代码,所以我不知道什么是对那里发生的。
这实际上是iOS UISearchBarDisplayController中的一个错误(当在UINavigationController中使用时)。默认行为是突出显示文本框,其余视图变暗,但此暗视图框架不考虑导航栏高度。要解决这个问题
最简单的方法是实现搜索栏委托
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller { self.navigationController.navigationBarHidden = YES; } - (void) searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller{ self.navigationController.navigationBarHidden = NO; }
其他替代方案包括修改搜索栏的框架
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller { // animate the search bar to the top ie. y=0 [UIView animateWithDuration:0.25f animations:^{ CGRect frame = controller.searchBar.frame; frame.origin.y = 0; controller.searchBar.frame = frame; }]; }
谢谢你的视频! – Cyprian