22 uinavigationbar ios swift uisearchcontroller ios11
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()
Run Code Online (Sandbox Code Playgroud)
在viewController课堂上,我设置 navigationItem.searchController = searchController和navigationItem.hidesSearchBarWhenScrolling = true
当我运行应用程序,我发现
shadowImage的navigationBar是仍然存在.当我滚动tableView时,navigationBar不会自动(不是prefersLargeTitles模式)自动(左边的gif).我希望navigationBar可以像系统应用程序(右边的gif)一样工作.
一个奇怪的行为:当我删除背景时
imageView,它可以像模拟器上的系统应用程序一样工作.
我不知道为什么会这样,我想知道如何解决它?谢谢.
小智 -1
您应该在 viewDidLoad() 中添加以下行
self.navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.hidesSearchBarWhenScrolling = false
Run Code Online (Sandbox Code Playgroud)
或者您可以实施viewForHeaderInSection以下方法UITableViewDataSource
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let search = UISearchController(searchResultsController: nil)
search.searchResultsUpdater = self
return search.searchBar
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2499 次 |
| 最近记录: |