UITableViewCell加载图像

时间:2011-09-23 16:49:44

标签: uitableview uiimage

我有16个本地存储的预渲染40x40像素图像,我想用作我的UITableViewCell图像。我可以使用[UIImage imageNamed:]来显示它们。但我注意到这会减慢表格滚动的速度。

我已经通过苹果示例查看延迟加载等,并了解我需要在后台线程或异步执行,但没有找到本地图像的示例。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

对UITableView单元格进行子类化,并在单元格中创建一个类似的新方法:

- (void)setImage:(NSString *)imageName;

然后从您用于设置图像的位置开始,将其更改为执行以下操作:

[cell setImage:nil];
[cell performSelector:@selector(setImage:) withObject:@"imageName" afterDelay:0];

将其更改为performSelector:withObject:afterDelay:表示在tableView滚动时不会执行设置图像的代码。这应该会导致滚动性能的显着提高,因为在滚动停止之前,它不会将图像设置为单元格。

但是,滚动时会注意到图像不足,因此您可能需要在滚动时考虑图像位置中的小占位符图像。

我个人在代码中有条件地使用此方法。我检测到UIDevice的年龄,如果它是老一代的设备,我会懒得加载,以提高滚动性能。