返回视图时,TableView第一个单元格隐藏在搜索栏下方

时间:2019-04-07 16:14:12

标签: swift tableview uisearchcontroller uirefreshcontrol

我在TableView上有一些奇怪的行为,希望有人能帮助我。

我在导航中有一个带有搜索栏的TableView。单元格导致详细视图。每当我在TableView中搜索然后单击结果单元格以进入详细信息视图时,从详细信息视图返回到TableView时,第一个单元格就会在打开的搜索栏下方消失。

搜索:

Searching

选择项目(详细视图)然后返回(使用导航栏)时,第一个单元格将隐藏在搜索栏下方:

Returning

一些注意事项:

  • 如果我在返回时打印contentInset,它将给出-44(隐藏1个单元格,如图所示)。我无法将contentInset设置回0.0(或者其他任何原因),因为它似乎没有任何改变。
tableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
print(tableView.contentOffset.y)

// -44.0

如果第一个单元格被隐藏,并且我先按下表格然后再向上按下来隐藏搜索栏,则问题自动消失,ContentInset恢复为0.0。

更新:我发现从后台返回应用程序后,视图也恢复了自身:

enter image description here

但是我无法在代码中复制它。我尝试过:

view.setNeedsLayout()
view.layoutIfNeeded()
tableView.reloadData()

2 个答案:

答案 0 :(得分:0)

已解决,我设置了searchController.hidesNavigationBarDuringPresentation = false,这导致了该错误。请参阅此帖子的答案:Search Bar in a Navigation Item collapses and gets stuck under status bar upon navigation pop, on iOS 11

感谢您的帮助!

答案 1 :(得分:0)

在tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath)中放开(动画:true)