Swift ios11 NavigationItem SearchBar 不会完全隐藏
Posted
技术标签:
【中文标题】Swift ios11 NavigationItem SearchBar 不会完全隐藏【英文标题】:Swift ios11 NavigationItem SearchBar won't hide completely 【发布时间】: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
之前(向下滚动以显示搜索栏):
之后(向上滚动隐藏):
【问题讨论】:
这是因为它只有在你向下滚动足够多的情况下才会完全隐藏搜索栏。 当表格中只有几行时似乎会出现问题。 【参考方案1】:正如Apple forums thread 中所讨论的那样。
当 hidesSearchBarWhenScrolling
的值为 true 时,搜索栏只有在滚动位置等于内容视图的顶部时才可见,这是在您使用 UIViewController 的情况下,该视图属性是普通的 UIView(它不是 UIScrollView 的子类)。
尝试使用 UITableViewController 或 ScrollView,它应该可以正常工作
【讨论】:
【参考方案2】:在我的情况下,只有当表中有少量项目时才会发生这种情况。 我来到了一个非技术性的,而是一个合乎逻辑的解决方案,仅当列表中有 >10 个项目时才显示搜索栏。无论如何,如果您只有少量项目,则无需搜索。
【讨论】:
【参考方案3】:尝试添加这个
self.navigationItem.hidesSearchBarWhenScrolling = true
【讨论】:
以上是关于Swift ios11 NavigationItem SearchBar 不会完全隐藏的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 - iOS 11.2 上的 UICollectionview 问题
ios11上swift中的CMSensorDataList枚举