在 iOS 中从 URL 加载 UIImage

Load UIImage from URL in iOS

我正在尝试使用 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>

查看 AsyncImageView。它是最好的异步图像加载器 AFAIK。您所要做的就是将图像 URL 设置到 imageview 中,剩下的就交给您了。包括缓存。

使用 AFnetworking 如果 url 不正确,您也可以在其中设置占位符图像。当您在表格视图或集合视图中加载图像时,这会更有效率。

导入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

下载

我找到问题了

My code is working correctly.

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