2016-07-02 4 views
1

UIImageがNSURLから表示されない - ナットを運転する。それは基本的ですが、現れません。私はURLが良いことを知っています。なぜなら、私がウェブ上で直接それを見ると、イメージを引き上げるからです。私は何か愚かな行方不明だと確信していますが、どんな助けもありがとう!ありがとう!UIImageがNSURLから表示されない

UIImageView *test = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
NSURL *url = [[NSURL alloc] initWithString:@"http://is5.mzstatic.com/image/thumb/Music/v4/0b/9c/d2/0b9cd2e7-6e76-8912-0357-14780cc2616a/source/100x100bb.jpg"]; 
NSData *data = [[NSData alloc] initWithContentsOfURL:url]; 
[test setImage:[UIImage imageWithData:data]]; 
[self.view addSubview:test]; 
[test setCenter:self.view.center]; 
+0

'data'はありませんか? '[UIImage imageWithData:data]' nilですか? – Larme

+0

コードは完全に正しいです。私のプロジェクトにコードを貼り付けてコピーするだけで、画像ビューに問題なく画像が表示されます。 –

+0

グーグ画像、btw。 –

答えて

-1

あなたが画像を取得するためにSDWebImageを使用することができます。

#Import "UIImageView+WebCache.h"` 
[yourImageView SD_setImageWithURL:imageUrl withPlaceHolder:thumbImage];` 
0

チェックラインラインと変更コードでは

UIImageView *test = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
NSURL *url = [NSURL URLWithString:@"http://is5.mzstatic.com/image/thumb/Music/v4/0b/9c/d2/0b9cd2e7-6e76-8912-0357-14780cc2616a/source/100x100bb.jpg"]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImage *img = [[UIImage alloc] initWithData:data]; 
[test setImage:[UIImage imageWithData:data]]; 
[self.view addSubview:test]; 
[test setCenter:self.view.center]; 
+0

データがヌルではない、イメージがヌルでない、何もnullではありません。唯一の問題は、単に表示されないことです。私はすべてのレベルで無効性チェックを行いました。すべてのレベルでNSLogs、ブレークポイント...すべてがうまくいっています。 –

+0

イメージビューでイメージを取得できますか? –

0

非ローカルURLを取得するためにdataWithContentsOfURLを使用しないでください。ネットワークURLではなく、ファイルからデータをロードするために設計されています。ネットワークURLからデータをロードしますが、それは現在のスレッドで同期的に行います。UIViewオブジェクトを使用している場合、これはメインスレッド上にあることを意味します。

上記のやり方をすれば、アプリケーションはほぼ100%確実にApp Storeから拒否されます。低速のネットワークでは、画像の読み込みがiOSで長すぎるためにメインスレッドをブロックするためにアプリを完全に削除してください。ネットワーク要求をするために

画像を取得するために(あなたが後方のiOS 6およびそれ以前との互換性を維持しようとしている場合やNSURLConnection)、あなたはNSURLSessionを使用しなければならない、と要求のロードが終了すると、その後、UIImageを作成します既に表示されているUIImageView(その時点まで何らかの種類の「読み込み中」アイコンが表示されているはずです)にsetImageを呼び出してください。

ネットワークイメージの読み込みを苦痛の少ないものにするために、特にクラスを提供する多くのサードパーティのネットワーキングライブラリを使用する方が簡単かもしれません。

これは、境界や画像レイアウト自体に影響を与えない自動レイアウトの制約がある場合を除き、既存のコードが何も表示されないのはなぜかわかりません。目に見えるまたはクリップされる。

関連する問題