我一直在绘制自定义表格单元格(使用来自苹果的样本作为基础),现在不得不做一个显示来自 URL 的图像的单元格 - 每个单元格都会有不同的图像(基于它拥有的一些数据) 但所有单元格都是相同的,因此相同的重用 ID。
这样做的正确结构是什么?显然我需要在新线程中加载图像。到目前为止,我在自己的线程中运行的单元格视图类中有以下函数:
- (void)loadImage
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
self.img = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: [myProduct objectForKey:@"ImagePath"]]]];
[self setNeedsDisplay];
[pool release];
}
当我从 drawRect 函数本身(这很糟糕)调用它时,它“工作”,但显然每次发生任何事情时都会调用它(选择等)。如果我把它放在单元格 uiview 的 init 函数中,那么它只会被前 8 个单元格调用,然后它们会被重用。其他变体最终使图像在重复使用单元格时不会“重置”,因此相同的 8 张图像在表格中重复出现(尽管其他文本更新)。
我暂时不担心缓存,但是有没有关于如何做到这一点的示例,或者有人能指出我正确的方向吗?谢谢。