我已经为 ViewController 实现了 UISearchController ,并在其中加上了 tableView ,现在我遇到了tableView奇怪的滚动行为的问题。向下滚动tableView并点击状态栏以滚动回到顶部后,tableView不会返回其正确位置(在导航栏下方)。看起来它停止了其回弹动画的一半。如果您在那之后触摸tableView,它将返回顶部。看看这个 gif亲自查看。
问题仍然存在于模拟器和真实设备(iPhone7)
这是我使用以下代码设置searchController的代码:
class MyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UISearchResultsUpdating {
@IBOutlet weak var tableView: UITableView!
var searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search..."
navigationItem.searchController = searchController
definesPresentationContext = true
}
...
}
什么可能导致这种行为以及如何解决?
答案 0 :(得分:0)
也许有几件事可以尝试:
我记得将ViewController嵌入到导航控制器中时,将布局约束设置为 Superview 而不是安全区域帮助tableTable滚动时的安全区域。
如果第一个不这样做,则将此属性添加到ViewController可能会有所帮助:
extendedLayoutIncludesOpaqueBars = true