如何在heightForRowAtIndexPath中检查UITableViewCell是否为nil(初始化)?

时间:2012-09-06 19:15:53

标签: iphone ios cocoa-touch uitableview

我有UITableViewCell我需要在用户输入时调整大小。单元格有一个UITextView作为子视图。

在heightForForWowAtIndexPath中,我需要检查当前单元格是否为零或已初始化。

如果它为零,我会根据字符串属性中的文本计算其高度。

如果它不是nil(即初始化),我希望它检索单元格子视图的text属性(我知道如果单元格被初始化,我可以访问它。)

如何在heightForRowAtIndexPath:内检查UITableViewCell是否为零?我试过

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([overviewTableView cellForRowAtIndexPath:indexPath] !=nil)
    {    NSLog(@"YEEHAW!");
    }
}

但它会导致错误(可能是因为cellForRowAtIndexPath:期望初始化单元格,而不是nil)。另外,我注意到cellForRowAtIndexPath:调用heightForRowAtIndexPath:(导致递归循环)。

我在网上看到过很多“替代品”,但我只是想知道这种方法是否有用(或者根本没有效果)。

提前致谢!

1 个答案:

答案 0 :(得分:5)

您可以检查感兴趣的细胞的indexPath是否可见:

if ([[overviewTableView indexPathsForVisibleRows] containsObject:indexPath])
{
    //Do something here
}

希望这有帮助!