search栏在input时从视图中消失
我在ViewDidLoad()
添加了SearchBar
到我的TableView
中:
self.searchBar = UISearchController(searchResultsController: nil) self.searchBar.searchResultsUpdater = self self.searchBar.dimsBackgroundDuringPresentation = false self.searchBar.searchBar.sizeToFit() self.tableView.tableHeaderView = self.searchBar.searchBar self.tableView.reloadData()
一切工作正常,但是当我点击这个SearchBar
它消失。 这意味着,我仍然可以打字,我可以看到结果,但是,没有看到SearchBar
。 我实现了UISearchBarDelegate
,我一直在试图添加
func searchBarTextDidBeginEditing(searchBar: UISearchBar) { self.navigationController?.navigationBarHidden = false } func searchBarTextDidEndEditing(searchBar: UISearchBar) { self.navigationController?.navigationBarHidden = true }
但它仍然不起作用。 你有什么想法,为什么这个Search Bar
消失?
这个问题的解决方法是(像@sandy悲伤)在viewDidLoad()
写这行代码
self.aNavigationController?.extendedLayoutIncludesOpaqueBars = true
但现在我有一个新的问题,这是什么意思当我在TableView
select行并显示新的VievController
, SearchBar
不会消失,我在新的视图中看到它。 为什么?
您需要在viewDidLoad()中将extendedLayoutIncludesOpaqueBars设置为true。
self.aNavigationController?.extendedLayoutIncludesOpaqueBars = true
其实search Bar
没有隐藏,只是根据文本调整它的width
和height
。
从代码中删除这一行,它会正常工作。
self.searchBar.searchBar.sizeToFit()