![](/img/trans.png)
[英]iOS 11 issues with Refresh Controller and navigationBar that has prefersLargeTitles set to true
[英]iOS 11 issues with navigationBar prefersLargeTitles
Xcode 9 beta 6 iOS 11
我有一個viewController
的故事板, 背景ImageView , tableView和searchFooter 視圖是視圖的子視圖 。結構如下:
在AppDelegate
類中,我設置了
UINavigationBar.appearance().prefersLargeTitles = true
和
UINavigationBar.appearance().setBackgroundImage(UIImage(),for: .default)
UINavigationBar.appearance().shadowImage = UIImage()
在viewController
類中,我設置了navigationItem.searchController = searchController
和navigationItem.hidesSearchBarWhenScrolling = true
當我運行應用程序時,我發現
navigationBar
的shadowImage
仍然存在。 當我滾動tableView時,navigationBar不會自動(不是prefersLargeTitles模式)成為正常(左邊的gif)。我希望navigationBar可以像系統應用程序(右邊的gif)一樣工作。
一個奇怪的行為:當我刪除背景
imageView
,它可以像模擬器上的系統應用程序一樣工作。
我不知道為什么會這樣,我想知道如何解決它? 謝謝。
該帳戶已被Stack overflow
團隊刪除。 所以我在這里用另一個ID來評論。 我向Apple報告了這個問題,他們讓我提供了一個項目而且我做了,但Apple沒有再發表任何評論了。
在NavigationController的NavigationsBar下創建TableView Top約束,而不是ViewControllers Top。 它應該工作
你應該在viewDidLoad()中添加以下行
self.navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.hidesSearchBarWhenScrolling = false
或者您可以實現UITableViewDataSource
viewForHeaderInSection
方法
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let search = UISearchController(searchResultsController: nil)
search.searchResultsUpdater = self
return search.searchBar
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.