我遇到了 searchBar 和 scopeBar 的问题。 Bascialy 只要我点击“取消”并设置 searchBar.showsScopeBar = false
,下次出现 searchBar 时就会留下这个奇怪的空间。
这里有一些代码:
override func viewDidLoad() {
super.viewDidLoad()
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.hidesNavigationBarDuringPresentation = true
controller.searchBar.searchBarStyle = UISearchBarStyle.Minimal
controller.searchBar.delegate = self
controller.searchBar.sizeToFit()
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
以及显示和隐藏范围栏背后的逻辑:
func searchBarShouldBeginEditing(searchBar: UISearchBar) -> Bool {
self.resultSearchController.searchBar.showsScopeBar = true
self.resultSearchController.searchBar.scopeButtonTitles = ["All", "Hot", "Active", "Warm"]
self.resultSearchController.searchBar.sizeToFit();
return true
}
func searchBarShouldEndEditing(searchBar: UISearchBar) -> Bool {
self.resultSearchController.searchBar.showsScopeBar = false
return true
}
这就是正在发生的事情:
我可以接受始终可见的 scopeBar 栏,但是当创建过程中在 searchBar 之前弹出时,当我进入详细信息时,它会落在下面。所以比现在更惨。
最佳答案
看到这个很晚,但以防万一其他人遇到这个。从 @Slavomir 代码中删除下面的这两行应该会给你你正在寻找的结果,因为不需要设置 showsScopeBar。
self.resultSearchController.searchBar.showsScopeBar = true
//移除
self.resultSearchController.searchBar.showsScopeBar = false
//移除
关于uitableview - 带有 scopeBar 奇怪行为的 searchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30023167/