只有当我开始滚动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
}
}];
提前致谢。
答案 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
中获取图像,您应该创建一个充当后备数据存储区的实用程序类。当您编码时,您可以想象,当单元格滚动进入和退出视图时,可以多次重新请求图像。