iOS11与UISearchController搜索结果tableView存在问题,其中包含一些单元格。我向上滚动tableView,然后我完成滚动并从屏幕上移开我的手指。之后,tableView必须向下滚动到边框以显示所有可用单元格。但是滚动被冻结了0.5秒,然后tableView跳回非常强大而且很快。看起来太糟糕了。
搜索栏位于导航栏上。 滚动时,任何代码都不会执行,因为所有单元格都保留在屏幕范围内。我为每个控制器功能添加了断点,但它们不起作用。
我录制了一个关于此错误的视频。该视频位于:https://youtu.be/g3LqdpI4FeA
我该如何解决?
答案 0 :(得分:0)
我解决了这个问题。该错误的存在是因为tableView在searchBar处于活动状态时尝试滚动包括searchBar在内的单元格并自行保存在屏幕顶部。
解决方法是在searchBar处于活动状态时强制更改值navigationItem.hidesSearchBarWhenScrolling为false,并在searchBar关闭时将其返回。
func willPresentSearchController(_: UISearchController) {
if #available(iOS 11.0, *) {
navigationItem.hidesSearchBarWhenScrolling = false
}
}
func willDismissSearchController(_ searchController: UISearchController) {
if #available(iOS 11.0, *) {
navigationItem.hidesSearchBarWhenScrolling = true
}
}