5

我正在尝试使用and imageUIImage从其 URL加载 a ,但是既不加载也不加载占位符。completionplaceholderUIImageUIImage

这是我的代码:

  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) {}
   ];
4

4 回答 4

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];    

注意:我使用了测试网址。你可以使用你的网址。

更新: 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 不应为 nil。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
于 2015-05-07T09:35:29.447 回答
13

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

进口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下载

于 2015-05-07T11:53:59.123 回答
3

退房AsyncImageView。它是最好的异步图像加载器 AFAIK。您所要做的就是将图像 URL 设置为 imageview,剩下的就交给我们了。包括缓存。

于 2015-05-07T10:36:39.547 回答
1

我发现了问题

我的代码工作正常。

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

于 2015-05-07T12:23:13.427 回答