2013-11-21 80 views

回答

2

这实际上是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; 
    }]; 

} 
+0

谢谢你的视频! – Cyprian