我在TableView上有一些奇怪的行为,希望有人可以帮助我。
我在导航中有一个带有搜索栏的TableView。细胞导致细节视图。每当我在TableView中搜索然后点击结果单元格转到详细视图时,从详细视图返回到TableView时,第一个单元格将在打开的搜索栏下方消失。
搜索:
在选择项目(详细视图)然后返回(使用导航栏)时,第一个单元格隐藏在搜索栏下:
有些事情需要注意:
tableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
print(tableView.contentOffset.y)
// -44.0
如果第一个单元格被隐藏,我通过向下推动表格然后向上再次隐藏搜索栏,问题会自动消失,并且ContentInset会恢复为0.0。
更新:我发现从后台返回应用程序后视图也会恢复:
但是我不能在代码中重现它。我试过了:
view.setNeedsLayout()
view.layoutIfNeeded()
tableView.reloadData()
解决了,我设置了searchController.hidesNavigationBarDuringPresentation = false
,导致了这个bug。请参阅这篇文章的答案:Search Bar in a Navigation Item collapses and gets stuck under status bar upon navigation pop, on iOS 11。
谢谢您的帮助!