SearchBar 和 NavigationBar 之间的空格 - Swift

Posted

技术标签:

【中文标题】SearchBar 和 NavigationBar 之间的空格 - Swift【英文标题】:Blank space between SearchBar and NavigationBar - Swift 【发布时间】:2016-09-27 07:46:09 【问题描述】:

我有一个简单的tableViewController、一个带作用域的searchBar 和一个navigationBar

当我点击我的searchBar 时,我会看到我的范围和所有工作。然后我单击一行并转到我的DetailPage 并且搜索栏没有隐藏(我不知道为什么)。

所以我点击取消,然后我返回到我的tableView。当我返回到我的 tableView 时,我的SearchBar 和我的NavigationBar 之间有一个空格。

这是我的代码:

      self.resultSearchController = (
            let controller = UISearchController(searchResultsController: nil)
            controller.searchResultsUpdater = self
            controller.hidesNavigationBarDuringPresentation = true
            controller.dimsBackgroundDuringPresentation = false
            controller.searchBar.sizeToFit()
            controller.searchBar.scopeButtonTitles = ["Title", "Author", "Location", "Price", "User"]
            self.tableView.tableHeaderView = controller.searchBar
            return controller
        )()

 func updateSearchResults(for searchController: UISearchController)
    
        let scopes = resultSearchController.searchBar.scopeButtonTitles
        let currentScope = scopes![resultSearchController.searchBar.selectedScopeButtonIndex] as String
        filterContentForSearchText(searchText: searchController.searchBar.text!, scope: currentScope)
    

【问题讨论】:

我认为将 ScrollView Insets 调整为 false 对您有用...您的控制器属性检查器取消选中调整 ScrollView Insets 我试过了,结果是一样的 您是否通过登录frames 确定了哪些实体占保证金? (header、insets、searchbarviewDidLoadviewWill/DidAppear 中的代码有什么区别? 我的 resultSearchController 在我的 viewDidLoad 方法中。我没有 viewWill/DidAppear 方法。搜索栏是问题所在,因为当我点击它时,它会因为我的范围而变大。 设置 SearchBar 位置:( 0 , 24,Width ,Height) 【参考方案1】:

尝试添加

  self.automaticallyAdjustsScrollViewInsets = false;

  self.extendedLayoutIncludesOpaqueBars = true

viewDidload.

【讨论】:

什么都没有。错误是一样的。每次在使用带范围的搜索栏后转到我的详细信息页面时,导航栏和表格视图之间都会添加一个空格 一次尝试在您的主视图中添加一个空标签(在您的搜索栏上方 - 即您的标签应该是视图层次结构中的第一个控件)

以上是关于SearchBar 和 NavigationBar 之间的空格 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

UISearchController 出现在 NavigationBar 后面

导航栏中的 UISearchBar

带有 SearchBar 的 iOS 11 导航栏大小

没有焦点时如何在SearchBar中单击一次取消按钮

当我在 NavigationBar 中单击 UISearchBar 时没有任何反应

在搜索栏上方添加空间