繁体   English   中英

SearchBar隐藏在NavigationBar下

[英]SearchBar hides under NavigationBar

我在表视图中添加了searchBar。 我也有一个导航栏,它应该显示在它下面。 直到我点击搜索栏,它才能正常工作。 在屏幕尺寸较大的设备(从iPhone 6开始)上执行此操作时,搜索栏将隐藏在导航栏下方。 它可以在实际的iPhone 5、5s上正常工作。 这是我初始化searchBar的方式:

    searchController.searchResultsUpdater = self as UISearchResultsUpdating
    searchController.dimsBackgroundDuringPresentation = false
    definesPresentationContext = true
    tableView.tableHeaderView = searchController.searchBar
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.searchBar.tintColor = UIColor.black


    searchController.searchBar.scopeButtonTitles = ["Device", "Person", "OS version"]
    searchController.searchBar.delegate = self as UISearchBarDelegate

在我点击搜索栏之前

在点击searchBar之后

searchBar不应隐藏,因为在搜索时我也需要对navigationBar进行分段控制。 您知道如何解决此问题吗?

更新:设置扩展边缘后,searchBar如下所示: 导航栏颜色已更改

当我点击搜索栏

我解决了问题。 这是一个iOS 11问题。 根据wwdc的建议,您应该为navigationItem添加searchBar。

if #available(iOS 11.0, *) {
    self.navigationItem.searchController = self.searchController
    self.navigationItem.hidesSearchBarWhenScrolling = false

} else {
    tableView.tableHeaderView = searchController.searchBar
}

这样可以解决问题,并且现在可以与任何iOS类型正常工作。 在iOS 11上,searchBar如下所示: iOS 11的SearchBar

选择您的viewController。 然后在实用程序窗口中取消勾选1:-顶栏

喜欢这张图片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM