我有一个uitableview,我在网络队列的帮助下显示数据。我像这样使用CellIdentifier,
NSString *CellIdentifier = [NSString stringWithFormat:@"%i_%i" , indexPath.section , indexPath.row];
并检查条件
if(cell ==nil)
{
}
所以数据只加载一次。
通过执行此操作,它会加载数据,但问题出在imageview中。图像尺寸很大所以需要一些时间。如果未加载图像并且用户滚动表格,则永远不会看到该图像。要查看图像,我们必须等到它被加载,然后我们滚动表格。
是否有任何方法可以再次加载未加载的图像。
我不想再次加载所有数据。
答案 0 :(得分:2)
您了解if(cell == nil){}是否错误 不应使用此条件,因此您的数据仅加载一次,仅在必要时用于构建新单元格 您必须在此条件之外设置每个单元格。
你绝对不应该为每个细胞使用不同的CellIdentifier。这是一个糟糕的黑客,他们会“懒惰”地正确实现延迟加载单元格图像。
你应该看到来自apple的LazyTableImages示例,看看它应该如何完成。
答案 1 :(得分:1)
要在表格视图中加载图片,您可以使用好LazyTableImages Example by Apple。您不必编写此类代码(每个代码都有不同的单元标识符)。您必须按照Apple文档重用表视图单元格,否则在滚动时会占用太多内存。