2011-09-23 99 views
0

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

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

任何人都可以帮忙吗?

回答

1

子类的UITableView细胞,开创细胞的新方法是这样的:

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

然后从那里您用来设置图像,改变它,而不是像做:

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

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

但是,您会发现滚动时缺少图像,因此您可能需要考虑图像位置中的一个小占位符图像,以便在滚动时显示。

我个人使用这种方法有条件地在我的代码。我检测UIDevice的年龄,如果它的老一代设备我会像这样延迟加载,以提高滚动性能。

+0

谢谢安德鲁..这对我来说工作得很好......干杯! –

相关问题