首页 > 解决方案 > iOS Swift - 滚动时如何向上移动搜索栏?

问题描述

这是我的观点的截图:

截屏

现在当用户向上滚动时,我需要隐藏这个 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。

我应该怎么办?

谢谢!

标签: iosswift

解决方案


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

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

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

推荐阅读