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

Cas*_*hew 2 iphone cocoa-touch uitableview ios

我有一个UITableViewCell我需要调整大小的用户类型.该单元格具有UITextView子视图.

在heightForRowAtIndexPath里面,我需要检查当前单元格是否为零或已初始化.

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

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

如何检查UITableViewCell是否为零heightForRowAtIndexPath:我试过了

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

但它会导致错误(可能是因为cellForRowAtIndexPath:期望细胞被初始化,而不是nil).此外,我注意到cellForRowAtIndexPath:调用heightForRowAtIndexPath:(导致递归循环).

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

提前致谢!

Car*_*zey 5

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

if ([[overviewTableView indexPathsForVisibleRows] containsObject:indexPath])
{
    //Do something here
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!