是否可以删除屏幕外UITableView的索引路径?我的情况需要它,我似乎无法找到任何方法或答案来删除屏幕外的IndexPath.row
。我不需要删除单元格,但只应保留可见单元格的indexPath。
这有意义吗?
抱歉,我无法提供任何代码,因为我不知道从哪里开始。
答案 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>