我想知道通常是否可以通过网址将图片加载到UIImageView
tableview
中。 JSON }。
我在UI中没有成功,在日志中只有两个图像。我不明白他为什么只给我2个网址而不是18个。
NSString *bildurl = [[arrayArtikelBild objectAtIndex:indexPath.row] objectForKey:@"bild"];
NSLog(@"BildURL: %@", bildurl);
UIImage *image = [UIImage imageWithContentsOfFile:bildurl];
cell.artikelImage.image = image;
我知道我的解析代码有效,因为我让它解析并显示其他内容(我使用 NSJSONSerialization )。
提前致谢。
答案 0 :(得分:1)
理论上你可以使用:
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:bildurl]]];
但这是非常不可取的,因为所有下载都将在主线程上完成+没有缓存。您需要异步加载图像以实现平滑滚动。我建议使用https://github.com/rs/SDWebImage或AFNetworking的UIImageView扩展程序(https://github.com/AFNetworking/AFNetworking)
答案 1 :(得分:0)
您可以使用 GCD (Grand Central Dispatch)来加载图片异步
使用它会明显提高加载tableview的性能。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:bildurl]]];
dispatch_sync(dispatch_get_main_queue(), ^{
[cell.artikelImage setImage:image];
[cell setNeedsLayout];
});
});