UITableViewCell更改图像而不调用Reload(LazyLoading)

时间:2013-05-20 18:19:55

标签: objective-c uitableview uiimageview lazy-loading

我看过一些示例LazyLoading,只要单元格可见并且加载完成,就会加载图像。我注意到他们没有调用ReloadData如何在不调用ReloadData或重新加载特定行的情况下更改图像?

我认为更改地址处的图像数据会这样做,但它不起作用。

我试过

 for (NSIndexPath *indexPath in visiblePaths)
{

        UIBubbleTableViewCell *aCell = (UIBubbleTableViewCell *)[self.bubbleTableView cellForRowAtIndexPath:indexPath];
        NSBubbleData *cellData = [aCell data];
        cellData.avatar = [self.profileImages objectForKey:[NSString stringWithFormat:@"%@", [cellData posterID]]];

}

但是,这不会更新图像。我必须在for循环之后调用ReloadData来加载图像。如果我不调用ReloadData,它将不会更新,直到单元格再次离开屏幕并返回视图。

1 个答案:

答案 0 :(得分:1)

查看UIBubbleTableViewCell的源代码,它似乎不会处理数据更新。但是,看起来每次设置单元框架时都会重新应用数据。所以做这样的事情可能是一种解决方法(我不使用这个库,所以我无法测试它):

aCell.frame = aCell.frame;