假设我有一个 UITableView 有多行。我想在某个时间点将所有 UITableViewCells 作为 NSArray 获取。我努力了
[tableView visibleCells]
但这种方法存在一个问题:我不能拥有当前不在当前屏幕中的所有单元格。所以我转向了另一种方法:
-(NSArray *)cellsForTableView:(UITableView *)tableView
{
NSInteger sections = tableView.numberOfSections;
NSMutableArray *cells = [[NSMutableArray alloc] init];
for (int section = 0; section < sections; section++) {
NSInteger rows = [tableView numberOfRowsInSection:section];
for (int row = 0; row < rows; row++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; // **here, for those cells not in current screen, cell is nil**
[cells addObject:cell];
}
}
return cells;
}
但似乎这种方法仍然无法获取那些未显示在屏幕中的单元格。谁可以帮我这个事?