UIScrollView动画滞后

时间:2010-07-21 11:39:33

标签: ios ipad uiscrollview

我正在为iPad编写一个能够在UIScrollView中显示图像(最大1024x1322)的阅读器

每个图像在需要时(滚动期间)加载到后台线程中(最多加载3个图像)。

我的问题是:加载数据时我正在更新UIImageView,在我的后台线程中:

image= [[UIImage alloc] initWithContentsOfFile: file];
[content setImage:image]

似乎“锁定”主线程并使UISCrollView动画完全不流畅。

提前感谢您提供任何线索

2 个答案:

答案 0 :(得分:2)

您应该从不从后台线程设置图像视图的图像(或任何UI组件的任何属性)。 UIKit 是线程安全的。您需要使用GCD或performSelectorOnMainThread:withObject:waitUntilDone:将图像传递给主线程。

答案 1 :(得分:0)

在后台线程中执行类似的操作,而不是使用UIImage

CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename("file.png"); 
CGImageRef image = CGImageCreateWithPNGDataProvider(dataProvider, NULL, NO, kCGRenderingIntentDefault);

将图像ref传回主线程,然后用[UIImage imageWithCGImage:image]

创建UIImage

希望这有帮助