0

无论如何我可以在设置当前单元格的高度时更改以前的 UITableViewCell 的高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath吗?

在 a 中有两行UITableView。在第一行时,它将设置默认高度。在第二行时,我想更改第一行的高度。这可能吗?如果有怎么办?

谢谢,
巴拉蒂。

4

3 回答 3

1

尝试使用布尔检查是否满足要求。你可以这样做:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath  { 

    if (indexPath.row == 0 && !secondRowIsSynced) {
        return otherHeight ;
    }
    else {
        return defaultHeight;
    }
}
于 2012-08-06T12:50:06.723 回答
0

婆罗地语:

您必须didSelectRowAtIndexPathUITableView.

您应该检查是否选择了第二行,然后重新加载所有表行,以便再次调用所有tableview delegate和方法。datasource

于 2012-08-06T12:37:47.720 回答
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];
于 2012-08-06T13:20:49.333 回答