我有一个带有范围的搜索栏的tableview。
用户搜索,搜索结果在tableview中完美显示。当用户单击tableview中的单元格时,它们将被带到另一个视图控制器。但是当我从视图控制器返回到tableview时,我遇到了问题。
我之前选择的单元格在屏幕上相当居中,但这意味着tableview的位置比之前更高。这个问题是我无法再滚动到高于所选单元格的单元格。向下滚动可以正常工作直到底部。 tableview的顶部也被我的范围栏隐藏。但奇怪的是,如果我转到另一个标签然后返回,那么tableview会修复它的位置。
以下是我为搜索栏所做的事情,包括那里的问题。
override func viewDidAppear(_ animated: Bool) {
searchController.isActive = true
}
override func viewDidLoad() {
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.isUserInteractionEnabled = false
searchController.searchBar.delegate = self
searchController.searchBar.barStyle = .black
searchController.searchBar.scopeButtonTitles = ["Title1", "Title2", "Title3"]
searchController.searchBar.sizeToFit()
definesPresentationContext = true
searchController.hidesNavigationBarDuringPresentation = false
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
...
}
很明显,当我从另一个视图返回时,如何避免tableview不让我向上滚动并且范围栏不覆盖tableview的顶部?