URLからUIImage
と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) {}
];
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
このコードを試して画像を取得してください...
コード:
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がnilでないことを確認してください。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
チェックアウト AsyncImageView
。その最高の非同期画像ローダーAFAIK。画像のURLをimageviewに設定するだけで、残りはすべて処理されます。キャッシングを含む。
問題が見つかりました
私のコードは正しく機能しています。
問題は私のコードのどこかにあり、ImageView
はnil
でした。皆さんありがとう