【问题标题】:Swift ios11 NavigationItem SearchBar won't hide completelySwift ios11 NavigationItem SearchBar 不会完全隐藏
【发布时间】:2017-11-07 02:51:05
【问题描述】:

在 iOS11 / Swift 4 中将搜索控制器添加到 navigationItem 时遇到问题。

基本上一切都按预期工作,下拉将显示搜索栏,搜索工作正常。但是,当尝试通过向上滚动来隐藏搜索栏时...该栏不会完全隐藏并保持为细条(见下文)。

我已将我的搜索控制器声明如下:

let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.scopeButtonTitles = ["All", "Samples"]
searchController.searchBar.delegate = self
navigationItem.searchController = searchController

之前(向下滚动以显示搜索栏):

之后(向上滚动隐藏):

【问题讨论】:

  • 这是因为它只有在你向下滚动足够多的情况下才会完全隐藏搜索栏。
  • 当表格中只有几行时似乎会出现问题。

标签: ios swift ios11 swift4 uisearchcontroller


【解决方案1】:

正如Apple forums thread 中所讨论的那样。

hidesSearchBarWhenScrolling 的值为 true 时,搜索栏只有在滚动位置等于内容视图的顶部时才可见,这是在您使用 UIViewController 的情况下,该视图属性是普通的 UIView(它不是 UIScrollView 的子类)。

尝试使用 UITableViewController 或 ScrollView,它应该可以正常工作

【讨论】:

    【解决方案2】:

    在我的情况下,只有当表中有少量项目时才会发生这种情况。 我来到了一个非技术性的,而是一个合乎逻辑的解决方案,仅当列表中有 >10 个项目时才显示搜索栏。无论如何,如果您只有少量项目,则无需搜索。

    【讨论】:

      【解决方案3】:

      尝试添加这个

      self.navigationItem.hidesSearchBarWhenScrolling = true
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-11
        • 2019-07-22
        • 1970-01-01
        • 2016-03-25
        • 2013-01-18
        • 1970-01-01
        相关资源
        最近更新 更多