无论如何我可以在设置当前单元格的高度时更改以前的 UITableViewCell 的高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
吗?
在 a 中有两行UITableView
。在第一行时,它将设置默认高度。在第二行时,我想更改第一行的高度。这可能吗?如果有怎么办?
谢谢,
巴拉蒂。
无论如何我可以在设置当前单元格的高度时更改以前的 UITableViewCell 的高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
吗?
在 a 中有两行UITableView
。在第一行时,它将设置默认高度。在第二行时,我想更改第一行的高度。这可能吗?如果有怎么办?
谢谢,
巴拉蒂。
尝试使用布尔检查是否满足要求。你可以这样做:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0 && !secondRowIsSynced) {
return otherHeight ;
}
else {
return defaultHeight;
}
}
婆罗地语:
您必须didSelectRowAtIndexPath
以UITableView
.
您应该检查是否选择了第二行,然后重新加载所有表行,以便再次调用所有tableview delegate
和方法。datasource
我认为您误解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];