要指定表格视图的单元格高度,我们使用委托方法
- (CGFloat) tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
然而,这个方法会询问每一行的单元格高度,如果我想将其中一些作为默认值,我该怎么办?
对于单元格高度,我们可以为委托方法中的那些默认行返回UITableView#rowHeight
,但我还希望自定义一些(不是全部)节标题/单元格。 / p>
但我无法从表格视图中获取默认值,特别是对于分组样式表视图,任何人都有解决方案?
谢谢!
编辑:对不起,我很抱歉。事实上,单元格高度并不是我想要部分自定义的唯一一个,而且还有其他类似的部分标题(可能还有更多,比如删除按钮样式等)。是否存在没有模仿默认行为的解决方案?
答案 0 :(得分:1)
单元格的默认高度为44 ..因此您可以在不满足条件时返回它。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (YOUR_SPECIFIC_CONDITION) {
return 180.0;
}
return 44.0;
}
愿这对你有帮助..
答案 1 :(得分:1)
如果您在所有情况下都不想要默认行为,那么您仍然需要在非专业案例中模仿默认行为。
对于标题,您仍然需要实现
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
在其中,您必须回答那些您不希望更改的标题的默认高度,以及您想要更改的标题高度。
同样地,在
中- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*);
您仍然需要模仿您不希望更改的单元格的默认行为。
如果您愿意,可以使用storyboard完成所有这些操作:为每个创建具有唯一标识符的专用单元格,然后返回与它们一起使用的单元格高度。如果你选择这条路线,那么你可以通过使用dequeueReuaableCellWithIdentifier并使用该标识符的高度值来逃脱。只需使用一个唯一的单元格标识符,其高度适合您正在考虑的每个单元格。
答案 2 :(得分:0)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0 && indexPath.section==0)
{
return 180.0;
}
else
{
return 44.0;
}
}