2013-11-21 79 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