0

我有一个带有很多 UIButton 的 UITableView。按钮中显示的大型本地图像。我使用此代码异步加载大图像(UIButton 的类别):

- (void)asyncLoadImageAtPath:(NSString *)fullPath forState:(UIControlState)state
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        UIImage *image = [[UIImage alloc] initWithContentsOfFile:fullPath];
        dispatch_async(dispatch_get_main_queue(), ^{
            [self setImage:image forState:state];
        });
    });
}

initWithContentsOfFile: 在其他线程中运行,同时通过 setImage:forState: 在主线程中更新 UI。但是 setImage:forState: 耗时太长,导致 UITableView 滚动不流畅。

那么有什么方法可以异步更新 UIImageView 或 UIButton 的 UI 呢?

特别感谢!

4

2 回答 2

1

查看SDWebImage,该库为 UIImageVIew 提供了一个类别,支持来自网络的远程图像。

于 2012-10-16T07:37:30.180 回答
1

对于我使用AsyncImageView的异步图像,它在 tableViews 上运行良好

于 2012-10-16T07:39:32.300 回答