在iphone uitableview数据显示问题

时间:2011-03-07 11:28:45

标签: iphone uitableview

我有一个uitableview,我在网络队列的帮助下显示数据。我像这样使用CellIdentifier,

NSString *CellIdentifier = [NSString stringWithFormat:@"%i_%i" , indexPath.section , indexPath.row];

并检查条件

if(cell ==nil)
{
}

所以数据只加载一次。

通过执行此操作,它会加载数据,但问题出在imageview中。图像尺寸很大所以需要一些时间。如果未加载图像并且用户滚动表格,则永远不会看到该图像。要查看图像,我们必须等到它被加载,然后我们滚动表格。

是否有任何方法可以再次加载未加载的图像。

我不想再次加载所有数据。

2 个答案:

答案 0 :(得分:2)

您了解if(cell == nil){}是否错误 不应使用此条件,因此您的数据仅加载一次,仅在必要时用于构建新单元格 您必须在此条件之外设置每个单元格。

你绝对不应该为每个细胞使用不同的CellIdentifier。这是一个糟糕的黑客,他们会“懒惰”地正确实现延迟加载单元格图像。

你应该看到来自apple的LazyTableImages示例,看看它应该如何完成。

答案 1 :(得分:1)

要在表格视图中加载图片,您可以使用好LazyTableImages Example by Apple。您不必编写此类代码(每个代码都有不同的单元标识符)。您必须按照Apple文档重用表视图单元格,否则在滚动时会占用太多内存。