在- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
设置当前单元格的高度时,我是否可以更改上一个UITableViewCell的高度?
UITableView
中有两行。在第一行时,它将设置默认高度。当在第二行时,我想要更改第一行的高度。这可能吗?如果是这样的话?
谢谢,
Bharathi。
答案 0 :(得分:1)
如果满足要求,请尝试使用布尔检查。 你可以这样做:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0 && !secondRowIsSynced) {
return otherHeight ;
}
else {
return defaultHeight;
}
}
答案 1 :(得分:0)
bharathi:
您必须使用didSelectRowAtIndexPath
的{{1}}方法重新加载表格。
您应检查是否已选中第二行,然后重新加载所有表行,以便再次调用所有UITableView
和tableview delegate
方法。
答案 2 :(得分:0)
我认为您误解tableView:heightForRowAtIndexPath:
被多次调用(对于表中的每一行一次)。
如果您的行具有不同的高度,那么您需要确定您所在的行以及它应该具有的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
CGFloat height;
if (0 == indexPath.row) {
// This is the first row
height = // what ever you want
} else if (1 == indexPath.row) {
// This is the second row
height = // what ever you want
}
return height;
}
如果您后来确定一行需要不同的高度,那么仍然需要计算每行使用的正确高度的方法。您可以强制调用此方法而无需像这样重新加载tableView
[tableView beginUpdates];
[tableView endUpdates];