【发布时间】:2020-01-11 20:24:56
【问题描述】:
我想以编程方式显示/隐藏 UISearchBar,但我没有想要的结果。
我要做的是在向下滚动时隐藏搜索栏并在向上滚动时显示它:
我这样设置我的 UISearchBar:
var mySearchcontroller = UISearchController(searchResultsController: nil)
mySearchcontroller.obscuresBackgroundDuringPresentation = false
mySearchcontroller.searchBar.placeholder = "search"
mySearchcontroller.searchBar.delegate = self
definesPresentationContext = true
self.navigationItem.searchController = mySearchcontroller
self.navigationItem.hidesBackButton = true
self.navigationItem.hidesSearchBarWhenScrolling = false
结果是
我实现了 scrollViewDidScroll 让搜索栏在滚动时显示或隐藏:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if(scrollView.panGestureRecognizer.translation(in: scrollView.superview).y > 0)
{
navigationItem.hidesSearchBarWhenScrolling = false
}
else
{
navigationItem.hidesSearchBarWhenScrolling = true
}
}
结果是:
当您意识到 GRP 标签或分段控件被搜索栏掩盖时,我没有在搜索栏下推所有控件时产生相同的效果(图 1)。
我该如何解决这个问题?
【问题讨论】:
标签: ios swift uisearchbar uisearchcontroller