从iOS中的URL加载UIIMAGE



我试图使用completionplaceholder图像从其URL加载UIImage,但是UIImage和占位符UIImage都没有加载。

这是我的代码:

  NSURL *url = [NSURL URLWithString:@"http://assets.gearlive.com/tvenvy/blogimages/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) {}
   ];

尝试此代码以获取图像...

代码:

NSURL *url = [NSURL URLWithString:@"http://www.fnordware.com/superpng/pnggrad16rgb.png"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
[self.imageview1 setImage:image];    

注意:我使用了测试URL。您可以使用您的URL。

更新: Swift 3.0代码

let url = URL(string: "http://www.fnordware.com/superpng/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(App Transport Security)。要设置ATS,您需要在info.plist文件中写下以下代码。确保图像的URL不应为零。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

使用AFnetworking,如果URL不正确,则可以在其中设置占位符映像。当您将图像加载到tableview或集合视图中时,这更有效。

导入UIImageView+AFNetworking.h

#import "UIImageView+AFNetworking.h"

和我们以下代码:

NSString *url1=@"http://www.fnordware.com/superpng/pnggrad16rgb.png";
[self.image setImageWithURL:[NSURL URLWithString:url1] placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

您可以从github下载

查看AsyncImageView。它是最好的异步图像加载器AFAIK。您所要做的就是将图像URL设置为imageView,其余的都要照顾。包括缓存。

我找到了问题

我的代码正常工作。

问题是我的代码中的某个地方,ImageViewnil。谢谢所有