删除屏幕外的UITableView的索引路径 - indexPath.row大于我的数组的大小

时间:2014-08-20 08:20:45

标签: ios uitableview nsindexpath

是否可以删除屏幕外UITableView的索引路径?我的情况需要它,我似乎无法找到任何方法或答案来删除屏幕外的IndexPath.row。我不需要删除单元格,但只应保留可见单元格的indexPath。

这有意义吗?

抱歉,我无法提供任何代码,因为我不知道从哪里开始。

2 个答案:

答案 0 :(得分:2)

在iOS6中,引入了一个新的UITableViewDelegate函数:

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

您可以使用以下内容:

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
   if ([tableView.indexPathsForVisibleRows indexOfObject:indexPath] == NSNotFound)
   {
    // This indeed is an indexPath no longer visible
    // Do something to this non-visible cell...
   }
}

答案 1 :(得分:1)

如果正确使用UITableView并使用方法将单元格出列...

[tableView dequeueCellWithReuseIdentifier:@"blah" indexPath:indexPath];

那么这已经发生了。

tableview管理屏幕上的哪些单元格。如果你的表中有1000行,但屏幕上一次只有10行,那么你在内存中只有10个单元格对象,因为当其他人从屏幕上滚动时,这些对象会被重新用于进入屏幕的行。 / p>