首页 > 解决方案 > TableView返回视图时隐藏在搜索栏下的第一个单元格

问题描述

我在 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()

标签: swifttableviewuisearchcontrolleruirefreshcontrol

解决方案


解决了,我设置searchController.hidesNavigationBarDuringPresentation = false了,导致了这个bug。请参阅这篇文章的答案:在 iOS 11 上,导航项中的搜索栏在导航弹出时崩溃并卡在状态栏下

谢谢您的帮助!


推荐阅读