【问题标题】:iOS 11 tableView with searchBar issue带有搜索栏问题的 iOS 11 uitableView
【发布时间】:2019-01-23 09:28:56
【问题描述】:

请帮忙确定这种行为的原因(很难用语言来描述,所以我录制了短视频)https://youtu.be/E2ks0liFX4I

简而言之: 最初它能够滚动导航栏下方的内容。如果按搜索字段 - 搜索栏看起来像是从表格视图中分离出来并且太高并且被状态栏重叠(查看搜索栏的灰色边框和表格中的第一行之间增加的空间)。按下取消按钮后 - 搜索栏跳下,现在无法通过滚动隐藏。

我正在使用 UITableViewController。 viewDidLoad 中的搜索栏初始化:

searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
tableView.tableHeaderView = searchController.searchBar

在故事板中: tableView settings

【问题讨论】:

    标签: ios uitableview uisearchbar


    【解决方案1】:

    不确定你想要什么。我想你希望滚动时隐藏搜索栏? 我将 searchbar 设置为 navigationItem,然后设置 hidesSearchBarWhenScrolling 属性。

    navigationItem.searchController = searchController
    navigationItem.hidesSearchBarWhenScrolling = true
    

    【讨论】:

    • navigationController 中的 searchBar 没问题。但在 tableViewHeader 内部却是非常奇怪的行为:搜索后跳转和错误的边距。
    • 您好,您是否尝试在表格中添加更多项目?像20多个。由于您将其添加到表头中,因此我的意思是,如果它不向下滚动,我将不会隐藏。