要指定表格 View 的单元格高度,我们使用委托(delegate)方法,
- (CGFloat) tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
但是这个方法会询问每一行的单元格高度,如果我想让其中一些是默认值,我该怎么办?
对于单元格高度,我们可以为委托(delegate)方法中的那些默认行返回 UITableView#rowHeight
,但我还希望自定义部分(不是全部)部分标题/单元格.
但我无法从 TableView 中获取默认值,尤其是对于分组样式 TableView ,有人有解决方案吗?
谢谢!
编辑:很抱歉没有说得很清楚。事实上,单元格高度并不是我唯一想要部分自定义的,还有其他一些东西,比如节标题(可能还有更多,比如删除按钮样式等)。
有没有不模仿默认行为的解决方案?
最佳答案
如果您不想在所有情况下都使用默认行为,您仍然必须在非特殊情况下模仿默认行为。
对于标题,你仍然需要实现
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
并且在其中,您将必须回答您不想更改的那些标题的默认高度,以及您确实想要更改的标题的专用高度。
同样,在
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*);
对于那些您不想更改的单元格,您仍然必须模仿默认行为。
如果需要,您可以使用 Storyboard 来完成所有这些操作:为每个单元格创建具有唯一标识符的专用单元格,然后返回它们附带的单元格高度。如果你走这条路,那么你可能只需使用 dequeueReuaableCellWithIdentifier 并使用该标识符的高度值就可以逃脱。只需使用高度适合您正在考虑的每个单元格的唯一单元格标识符即可。
关于ios - 如何自定义 UITableView 的某些单元格高度,而将其他单元格保留为默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11327623/