iOS Swift - 滚动时如何向上移动搜索栏?

Posted

技术标签:

【中文标题】iOS Swift - 滚动时如何向上移动搜索栏?【英文标题】:iOS Swift - How to move searchBar up when scrolling? 【发布时间】:2019-04-25 21:08:25 【问题描述】:

这是我的观点截图:

现在当用户向上滚动时,我需要隐藏这个 searchBar。当用户向下滚动时,我需要显示这个 searchBar。而且它应该是循序渐进的,而不仅仅是显示和隐藏。

这是我现在在viewDidLoad中的代码:

self.searchBar.frame = CGRect(x: 0, y: 0, width: (navigationController?.view.bounds.size.width)!, height: 55)
self.searchBar.barStyle = .default
self.searchBar.isTranslucent = false
self.searchBar.barTintColor = UIColor.groupTableViewBackground
self.searchBar.backgroundImage = UIImage()
self.searchBar.delegate = self
self.view.addSubview(searchBar)
self.definesPresentationContext = true

另外,我将tableView到顶部的距离设置为55,这样searchBar就不会覆盖tableView。

我该怎么办?

谢谢!

【问题讨论】:

【参考方案1】:

通常的做法是拥有一个 UISearchController 并将其搜索栏分配给视图控制器的导航项的 searchController 属性。这会导致搜索栏自动按照您所描述的方式运行。

这是我自己的代码中的一个示例:

let src = SearchResultsController(data: self.sections)
let searcher = UISearchController(searchResultsController: src)
searcher.searchResultsUpdater = src
self.navigationItem.searchController = searcher

【讨论】:

以上是关于iOS Swift - 滚动时如何向上移动搜索栏?的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift ScrollView、UITableView、滚动区域

Swift ios11 NavigationItem SearchBar 不会完全隐藏

IOS Swift TableView:有没有办法将第一个单元格向下移动一行

如果向上滚动,UITableview 标题不会再次显示

更改表格宽度时,Swift Tableview 向上移动

iOS当我滚动到底部Swift 4时如何更新表格视图数据