1

Web サーバーにある .png ファイルとして、rect ボタンの背景画像を設定しようとしています。ビュー コントローラー .h でボタンを宣言し、これを .m viewdidload の下に追加しました。

[mybutton setImage: [UIImage imageNamed: @"http://www.myserver.com/index_files/stacks_image_14.png"] forState: UIControlStateHighlighted];

しかし、ボタンには何も表示されません。オブジェクトにイメージを割り当てようとする前に、NSSURL を読んでイメージの呼び出しについて確認しましたが、現時点では少し行き詰まっています。

助けてくれてありがとう!

編集:私が試した新しいコード:

 NSURL *myurl2 = [NSURL URLWithString:@"http://www.myserver.com/bigoaks.png"];
    NSURLRequest *request2 = [NSURLRequest requestWithURL:myurl2
                                             cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                         timeoutInterval:10.0];

    NSURLConnection *connection2= [[NSURLConnection alloc] initWithRequest:request2 
                                                                 delegate:self];
    NSString *mystring2 = [NSString stringWithContentsOfURL:myurl2 encoding:NSUTF8StringEncoding error:&error]; 
    [mybutton setImage : mystring2];

まだ「UIButton の目に見える @interface がセレクター 'setImage:' を宣言していません」を取得しているようです。

ご協力ありがとうございました。

編集2:

とった!すべての助けてくれてありがとう-これが他の人を助けるための最終的なコードです:

NSURL *myurl2 = [NSURL URLWithString:@"http://www.myserver.com/bigoaks.png"];
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:myurl2]];
[mybutton setImage:image forState:UIControlStateNormal];

このチュートリアルの使用: http://mobiledevelopertips.com/cocoa/download-and-create-an-image-from-a-url.html

4

3 に答える 3

0
NSURL *url = [NSURL URLWithString:@"http://www.myserver.com/image.png"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
[mybutton setImage:image];

これがあなたが探していたものであることを願っています:)

于 2012-05-17T16:27:24.747 に答える
0

imageNamedは、バンドルに含まれている画像を使用するためのものです。もう1つの答えは正しいですが、接続の問題や一般的な遅延がある場合、そのコードは非同期ではないため、UIをフリーズします。代わりに、NSURLRequestとNSURLConnectionを使用してイメージを非同期にダウンロードし、完了デリゲート関数(connectionDidFinishLoading)で使用するようにボタンを設定することをお勧めします。

于 2012-05-17T16:46:45.507 に答える
0

これを試して

[mybutton setBackgroundImage:[UIImage imageNamed:@"http://www.myserver.com/index_files/stacks_image_14.png"] forState:UIControlStateNormal];

于 2012-05-17T16:54:08.370 に答える