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

问题描述 投票:0回答:1

我在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()
swift tableview uisearchcontroller uirefreshcontrol
1个回答
0
投票

解决了,我设置了searchController.hidesNavigationBarDuringPresentation = false,导致了这个bug。请参阅这篇文章的答案:Search Bar in a Navigation Item collapses and gets stuck under status bar upon navigation pop, on iOS 11

谢谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.