UITableView中的iOS折叠标题部分?

Posted

技术标签:

【中文标题】UITableView中的iOS折叠标题部分?【英文标题】:iOS collapse header section in UITableView? 【发布时间】:2013-07-04 21:14:53 【问题描述】:

我有一个 UITableView,它有一个我想用来显示内容的标题视图。当没有内容存在时,我想隐藏标题视图(这是一个 UIView 类)并让 TableView 单元格滑动到视图的顶部。

好像

 ____________  
| ---------- |
| |        | |
| | header | |
| |        | |
| ---------- |
| ---------- |
| |  cell  | |
| ---------- |
|            |

当我打电话时

[theHeaderView setHidden:YES]

标题视图中的内容消失了,但我的 TableView 的单元格仍保留在屏幕中间到标题将它们推送到的位置。所以我结束了:

 ____________  
|            |
|   EMPTY    |
|   SPACE    |
|            |
|            |
| ---------- |
| |  cell  | |
| ---------- |
|            |

隐藏标题视图并使表格视图单元格移动到屏幕顶部的正确方法是什么?

然后我想稍后用新内容重新打开我的标题并再次按下单元格。

谢谢!

【问题讨论】:

theHeaderView 的班级是什么? 标题视图是一个 UIView developer.apple.com/library/ios/#samplecode/TableViewUpdates/… 看到这个 【参考方案1】:

您需要更改tableView:heightForHeaderInSection: 而不仅仅是隐藏标题视图。我不记得当你重新加载表格时这是否会动画(reloadSections:withRowAnimation:)。

【讨论】:

谢谢。我尝试了您的解决方案,但似乎没有效果。基本上是:[self.tableView beginUpdates]; [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone]; [self.tableView endUpdates];并让 tableView:heightForHeaderInSection: 返回 0.0f 但仍然在屏幕顶部留下空白区域。我可能做错了什么!想法? 你使用的是表头还是节头? 啊,它是一个表格标题而不是一个部分标题(通过将 UIView 对象拖到情节提要并放在 UITableViewController 中的原型单元格上方创建)。如何作为表头处理?谢谢! 对于表头,您可以尝试降低框架高度,或者您可能需要删除视图(将其设置为 nil)。

以上是关于UITableView中的iOS折叠标题部分?的主要内容,如果未能解决你的问题,请参考以下文章

滚动并返回到 UITableView 中的部分关闭(包含 0 个单元格)

如何将相关的 UITextField 文本数据发送到可折叠 UITableView 中的函数?

带部分的可折叠 UITableView

展开/折叠带有支持 NSFetchedResultsController 的 UITableView 部分

在uitableview swift4中展开和折叠多级部分

Xcode UI 测试 - UITableView 部分