問題詳情:
首先是TableView 作為 NavigationController 的 RootViewContrller, 然后UISearchBar
添加到TableView 的 headView 上,同時 UISearchDisplayController 的 contentsController
為tableView, SearchBar 為tableView headview 上的 searhBar,然后點擊后 searchBar 會平滑
移動到 NavgationBar 的位置,點擊取消或蒙版的,searhBar 會跳動下再回到正確的位置。
解決辦法:
在控制器的viewdidload: 中加入
[self setAutomaticallyAdjustsScrollViewInsets:YES];
[self setExtendedLayoutIncludesOpaqueBars:YES];
查找原因過程:
首先是看到 FontAwesome 的搜索沒有問題然后就看其實現,沒有改變UINavigationBar的默認顏色,
沒有UINavigationItem,然后就將其全部注釋,然后問題依然, 再 設置UINavigationBar 的 translucent 屬性
為YES,接着打開 UINavigationBar 的背景色,然后問題又出現了,由於背景色要同時設置狀態欄的顏色,所以設置代碼為
[[UINavigationBar appearance]setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
同時不使用 圖片的方式,通過遍歷系統子控件設UINavigationBar 的設置背景色同樣也會導致跳動,
問題就可能是系統SDK的問題了,猜測而已。。然后就各種關鍵詞搜。。最后。。。
詳情解釋:
http://stackoverflow.com/questions/20565980/uisearchbar-in-uitableviewheader-strange-animation-on-ios-7