我试图弄清楚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>>
我需要有人向我展示如何检查此数组中是否包含特定索引。
答案 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
的实例...