uitableview - 带有 scopeBar 奇怪行为的 searchBar

标签 uitableview swift ios8 uisearchbar uisearchcontroller

我遇到了 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
}

这就是正在发生的事情:

enter image description here

我可以接受始终可见的 scopeBar 栏,但是当创建过程中在 searchBar 之前弹出时,当我进入详细信息时,它会落在下面。所以比现在更惨。

最佳答案

看到这个很晚,但以防万一其他人遇到这个。从 @Slavomir 代码中删除下面的这两行应该会给你你正在寻找的结果,因为不需要设置 showsScopeBar。

self.resultSearchController.searchBar.showsScopeBar = true//移除 self.resultSearchController.searchBar.showsScopeBar = false//移除

关于uitableview - 带有 scopeBar 奇怪行为的 searchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30023167/

相关文章:

ios - 在使用自定义 UITableViewCell 时解决没有自定义 init 方法的问题

ios - 何时使用 numberOfSections 或 numberOfRowsInSection ? ( swift 3)

ios - UITableview 单元格未在 reloaddata 上更新

ios - UIAlertController 状态栏没有变暗和色调问题

ios - iOS 企业应用程序中的动态库注入(inject)失败

iphone - 无法滚动到作为 subview 添加到 UIView 中的 UITableView 的下部

swift - 为什么选择器绑定(bind)在使用 SwiftUI 时不更新?

ios - 密码为 Apple 沙盒测试器 "this field is invalid"

ios - Swift 缓冲区指针和数组索引

ios - 在 iOS8 中使用 NSUrlSession 使用流请求进行后台上传