需要检查UITableViewCell是否在iOS中的visibleCells方法返回的数组中

时间:2013-06-13 18:26:42

标签: ios uitableview

我试图弄清楚UITableViewCell的特定索引是否包含在方法“visibleCells”返回的数组中。我能够使用方法“indexPathsForVisibleRows”,但我试图弄清楚如何使用“visibleCells”方法。目前,我所能做的就是获取阵列,并简单地打印出如下内容:

NSArray *test = [_table visibleCells];

    for (NSString *i in test) {
        NSLog(@"index is: %@", i);
    }

给出了以下输出:

index is: <UITableViewCell: 0x715dae0; frame = (0 132; 247 44); text = 'Item 3'; autoresize = W; layer = <CALayer: 0x715d9d0>>
2013-06-13 13:34:19.296 SimpleTable[1203:c07] index is: <UITableViewCell: 0x715e170; frame = (0 176; 247 44); text = 'Item 4'; autoresize = W; layer = <CALayer: 0x715e060>>

我需要有人向我展示如何检查此数组中是否包含特定索引。

1 个答案:

答案 0 :(得分:0)

试试这个:

if ([[tableView indexPathsForVisibleRows] containsObject:[tableView indexPathForCell:cell]) {
    // the cell is visible
} else {
    // the cell is not visible
}

应该注意的是,上述情况存在崩溃风险...... 如果您使用containsObject,则使用visibleCells也会有效。

if ([[tableView visibleCells] containsObject:cell]) {
    // the cell is visible
} else {
    // the cell is not visible
}

作为您的代码的旁注:

NSArray *test = [_table visibleCells];

for (NSString *i in test) {
    NSLog(@"index is: %@", i);
}

for循环错误,因为test不包含NSString的实例,它包含UITableViewCell的实例...