在iOS中从URL加载UIImage

Ahd*_*wan 5 objective-c nsurlrequest imageurl ios swift3

我试图UIImage从其URL completion和placeholder图像加载一个,但既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) {}
   ];
Run Code Online (Sandbox Code Playgroud)

Ash*_*dhe 15

试试这段代码来获取图片......

码:

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];    
Run Code Online (Sandbox Code Playgroud)

注意:我使用过测试网址.你可以使用你的网址.

更新: 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 {

    }
Run Code Online (Sandbox Code Playgroud)

注意:在Xcode 7.1及更高版本中,您需要设置ATS(App Transport Security).要设置ATS,您需要在info.plist文件中写下代码.确保图像的网址不应为零.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)


Aks*_*nth 12

用AFnetworking在这里可以设置图像占位符此外,如果网址不正确.在tableview或集合视图中加载图像时,这会更有效.

进口 UIImageView+AFNetworking.h

#import "UIImageView+AFNetworking.h"
Run Code Online (Sandbox Code Playgroud)

和我们以下代码:

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

你可以从gitHub下载它