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 不会完全隐藏