返回视图时 TableView 第一个单元格隐藏在搜索栏下
TableView first cell hidden under search bar when returning to view
我在 TableView 上有一些奇怪的行为,希望有人能帮助我。
我有一个在导航中带有搜索栏的 TableView。这些单元格指向详细视图。每当我在 TableView 中搜索然后点击结果单元格以转到详细信息视图时,从详细信息视图返回到 TableView 时,第一个单元格会在打开的搜索栏下方消失。
正在搜索:
选择项目(详细视图)然后返回(使用导航栏)时,第一个单元格隐藏在搜索栏下方:
一些注意事项:
- 如果我在返回时打印 contentInset,它会给出 -44(隐藏 1 个单元格,如图所示)。我无法将 contentInset 设置回 0.0(或与此相关的任何其他值),因为它似乎没有任何改变。
tableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
print(tableView.contentOffset.y)
// -44.0
如果第一个单元格被隐藏,我通过按下 table 然后再向上推来隐藏搜索栏,问题会自动消失并且 ContentInset 恢复到 0.0。
更新:我发现视图在从后台返回应用程序后也会自行恢复:
但是我无法在代码中重现它。我试过:
view.setNeedsLayout()
view.layoutIfNeeded()
tableView.reloadData()
已解决,我设置了searchController.hidesNavigationBarDuringPresentation = false
,导致了bug。请参阅关于此 post 的答案:Search Bar in a Navigation Item collapses and gets stuck under status bar upon navigation pop, on iOS 11。
感谢您的帮助!
将 dismiss(animated: true) 放入 tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
我在 TableView 上有一些奇怪的行为,希望有人能帮助我。
我有一个在导航中带有搜索栏的 TableView。这些单元格指向详细视图。每当我在 TableView 中搜索然后点击结果单元格以转到详细信息视图时,从详细信息视图返回到 TableView 时,第一个单元格会在打开的搜索栏下方消失。
正在搜索:
选择项目(详细视图)然后返回(使用导航栏)时,第一个单元格隐藏在搜索栏下方:
一些注意事项:
- 如果我在返回时打印 contentInset,它会给出 -44(隐藏 1 个单元格,如图所示)。我无法将 contentInset 设置回 0.0(或与此相关的任何其他值),因为它似乎没有任何改变。
tableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
print(tableView.contentOffset.y)
// -44.0
如果第一个单元格被隐藏,我通过按下 table 然后再向上推来隐藏搜索栏,问题会自动消失并且 ContentInset 恢复到 0.0。
更新:我发现视图在从后台返回应用程序后也会自行恢复:
但是我无法在代码中重现它。我试过:
view.setNeedsLayout()
view.layoutIfNeeded()
tableView.reloadData()
已解决,我设置了searchController.hidesNavigationBarDuringPresentation = false
,导致了bug。请参阅关于此 post 的答案:Search Bar in a Navigation Item collapses and gets stuck under status bar upon navigation pop, on iOS 11。
感谢您的帮助!
将 dismiss(animated: true) 放入 tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)