如何从url异步中将图像加载到uicollectionview单元格中

时间:2016-03-09 21:17:01

标签: ios objective-c uicollectionview

我有一个方法,我在viewForRowAtIndexPath方法中从单元格调用。

该方法仅包含此代码

 NSURL *imageURL = [NSURL URLWithString:urlString];
        NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
        UIImage *image = [UIImage imageWithData:imageData];
        dispatch_async(dispatch_get_main_queue(), ^(void){
            completionBLock(image);
        });

图像加载速度非常慢,有时根本不加载。每次单元格返回视图时,该方法都会再次被调用。

这是我的cellForIndexPathRow

[Method getImage:brochureModel.brochureCoverUrl Oncompletion:^(UIImage *image) {
    cell.imageView.image = image;
}];

如何从网址下载图片并将其显示在可重复使用的单元格的集合视图中。

注意:我试图不为我的应用程序使用任何第三方库

我的问题在于图像的缓存。我尝试使用self.imageCache作为mutableDictionary。

if (self.imageCache[urlString]) {
    UIImage *imageFromCache = self.imageCache[urlString];
    onImageDidLoad(imageFromCache);
} else {
    [API fetchImageFromUrl:urlString onDidLoad:^(UIImage *image) {
        self.imageCache[urlString] = image;
        onImageDidLoad(image);
    }];
}

0 个答案:

没有答案