仅当我滚动表视图时,才会加载UITableViewCell中来自url的图像

时间:2014-09-27 06:46:35

标签: objective-c uitableview uiimage nsurlrequest

只有当我开始滚动UITableView时,从url下载的图像才会在UITableViewCell中显示图像。现在我使用以下代码从url加载图像:

NSURL* url = [NSURL URLWithString:imageURL];
    NSURLRequest* request = [NSURLRequest requestWithURL:url];


[NSURLConnection sendAsynchronousRequest:request
        queue:[NSOperationQueue mainQueue]
        completionHandler:^(NSURLResponse * response,
            NSData * data,
            NSError * error) {
    if (!error){
            NSImage* image = [[NSImage alloc] initWithData:data];
        // do whatever you want with image
    }

}];

提前致谢。

2 个答案:

答案 0 :(得分:0)

我强烈推荐SDWebImage,这非常简单而且功能强大。

您可以使用setImageWithURL类别,只需为imageView设置图片即可。例如

[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]];`

您只需[[SDImageCache sharedImageCache] storeImage:myImage forKey:myImageCacheKey]保存图片缓存,只需[[SDImageCache sharedImageCache] queryDiskCacheForKey:myImageCacheKey done:^doneBlock]查询图片缓存;

非常简单和强大,有关详细信息,请查看此处SDWebImage;

答案 1 :(得分:0)

您不应该在- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath中获取图像,您应该创建一个充当后备数据存储区的实用程序类。当您编码时,您可以想象,当单元格滚动进入和退出视图时,可以多次重新请求图像。