相关疑难解决方法(0)

设置UIImageView的图像属性会导致严重滞后

让我告诉你我遇到的问题以及我是如何解决这个问题的.我有一个UIScrollView加载子视图,从左到右滚动.每个子视图有10-20张图像,每张400x200左右.当我从视图滚动到视图时,我经历了相当多的滞后.

在调查之后,我发现在卸下所有视图并再次尝试后,滞后消失了.我认为图像的同步缓存是滞后的原因.所以我创建了一个UIImageView的子类,它以异步方式加载图像.加载代码如下所示(self.dispatchQueue返回串行调度队列).

- (void)loadImageNamed:(NSString *)name {
    dispatch_async(self.dispatchQueue, ^{
        UIImage *image = [UIImage imageNamed:name];

        dispatch_sync(dispatch_get_main_queue(), ^{
            self.image = image;
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

然而,在将我的所有UIImageViews更改为此子类后,我仍然经历了滞后(我不确定它是否被减少).我把问题的原因归结为self.image = image;.为什么这会导致这么多延迟(但仅限于第一次加载)?

请帮我.=(

performance asynchronous core-graphics uiimageview uiimage

22
推荐指数
1
解决办法
1万
查看次数