除了最后一行之外的所有行都是表中相同的高度。如果我们忘记了最后一行,在正常情况下我会像这样设置表格视图的高度:
[self.tableView setRowHeight:40.0f];
但是如果我希望最后一行是不同的高度,我将实现委托方法heightForRowAtIndexPath
,然后为所有索引路径调用它。这看起来非常昂贵,并且可能影响> 1000行数据的性能。
我没有看到任何其他方式,但在得到反馈之前会保持乐观。
答案 0 :(得分:1)
如果您只返回一个或另一个高度,基于单个if语句,它可能不会那么昂贵。方法调用非常便宜。如果您正在执行某些计算(通常,根据行中文本的长度计算变量高度),那么您会看到性能损失。仅在重新加载tableView时调用该方法,因此滚动性能不会成为问题。
您应该始终首先使用自然框架方法并检查性能,而不是假设某些事情会变得缓慢并进行复杂的解决方法。就像男人说的那样,过早的优化和所有这一切。
另外,如果你的表中有超过1000行,你最好在侧面有一个索引,否则将无法使用。
答案 1 :(得分:0)
实现表的页脚视图并实现委托
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
检查页脚视图是否符合您的要求。如果您不能使用页脚视图,则可能必须实现表视图的委托方法来设置问题中提到的行高。除非你在那里做一些昂贵的操作,否则它不会导致任何性能损失。
答案 2 :(得分:0)
No you can implement this by specifying different height for different rows as per your requirement.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == [YourArray count]-1)
{
return CustomHeightYouNeedForYourCell;
}
return DefaultheightForAllCells;
}