135

IBOutletto aがありUIImageViewますが、UIImageViewドキュメントを見ると、プログラムで変更するためのヒントが見当たりません。UIImageそこからオブジェクトを取得する必要がありますUIImageViewか?

4

15 に答える 15

185

UIImageView への IBOutlet が既にある場合は、画像を取得してレシーバー (UIImageView) で setImage を呼び出すだけです。画像を取得する 2 つの例を以下に示します。1 つは Web から、もう 1 つは Xcode の Resources フォルダーに追加します。

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];

また

UIImage *image = [UIImage imageNamed: @"cell.png"];

画像を取得したら、UIImageView を設定できます。

[imageView setImage:image];

上記の行は、imageView が IBOutlet であることを前提としています。

それでおしまい!派手にしたい場合は、画像を UIView に追加してからトランジションを追加できます。

PS メモリ管理は含まれていません。

于 2009-04-01T16:21:54.233 に答える
37

ビューがシーンに追加されるまで、NIB ファイルはすべての IBOutlets を接続しないことに注意してください。手動で配線している場合 (別々の NIB にある場合はそうしている可能性があります)、これは覚えておくことが重要です。

したがって、テスト ビュー コントローラーにペン先で配線された「imageView」がある場合、これはおそらく機能しません。

  testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
  [self.view addSubview:testCardViewController.view];

しかし、これは:

  [self.view addSubview:testCardViewController.view];
  testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
于 2010-08-22T05:55:23.003 に答える
30

これは私のために働いた

[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];

ImageView が .h ファイルで適切に宣言され、IB 要素にリンクされていることを確認してください。

于 2010-06-07T11:48:45.560 に答える
23
imageView.image = [UIImage imageNamed:@"myImage.png"];
于 2013-04-24T13:37:37.450 に答える
16

これをグーグルで検索して問題を解決しようとしている人のために、ヘッダーファイルでプロパティを適切に宣言し、実装ファイルで UIImageView を合成することを忘れないでください...プログラムで画像を設定するのは難しいでしょうゲッターとセッターのメソッド。

#import <UIKit/UIKit.h>

@interface YOURCONTROLLERNAME : UIViewController {
    IBOutlet UIImageView *imageToDisplay;
}

@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;

@end

そしてあなたの .m で:

@implementation YOURCONTROLLERNAME

@synthesize imageToDisplay;
//etc, rest of code goes here

そこから、次のようなものを使用して画像を設定できます。

[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
于 2010-07-15T14:16:29.237 に答える
15

Swiftでの例:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var myUIImageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func myAction(sender: UIButton) {
        let newImg: UIImage? = UIImage(named: "profile-picture-name")
        self.myUIImageView.image = newImg
    }

    @IBAction func myAction2(sender: UIButton) {
        self.myUIImageView.image = nil
        self.myUIImageView.image = UIImage(data: NSData(contentsOfURL: NSURL(string: "http://url/image.png")!)!)
    }

}
于 2015-03-13T15:49:00.770 に答える
9

ジョーダンのアドバイス(実際には機能するはずです)に従って、UIImageViewを表示するように設定してみてください。

 [imageView setHidden: NO];

また、メインのUIViewにアタッチすることを忘れないでください。

[mainView addSubview: imageView];

そして前面に持ってくるために:

[mainView bringSubviewToFront: imageView];

これらすべてのステップを組み合わせることで、謎を解くことができれば幸いです。

于 2009-07-06T04:44:31.617 に答える
8

My problem was that I tried to change the image in an other thread. I did like this:

- (void)changeImage {
    backgroundImage.image = [UIImage imageNamed:@"img.png"];
}

Call with:

[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
于 2011-11-29T21:04:22.193 に答える
7

sizeToFit()UIImageView のサイズを使用して UIScrollView contentSize を設定したり、ズームスケールを計算したりする場合は、画像を変更した後に呼び出すことを忘れないでください。

let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
于 2016-04-01T14:39:31.557 に答える
7

UIImageViewプログラムで画像を設定する場合は、サブビューUIImageView としてメイン ビューに追加することを忘れないでください。

また、ImageView Frameを設定することを忘れないでください。

ここにコードがあります

UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];

myImage.image = [UIImage imageNamed:@"myImage.png"];

[self.view addSubview:myImage];
于 2012-06-07T06:26:10.060 に答える
2

この質問にはすでに多くの回答がありました。残念ながら、どれも私にとってはうまくいきませんでした。したがって、完全を期すために、私を助けたものを追加します。

同じ名前の画像が複数あったので、サブフォルダーに並べました。そして、表示したい画像ファイルへのフルパスを持っていました。(上記のすべてのソリューションで使用されているように)フルパスimageNamed:を使用しても機能せず、間違った方法でした。

代わりにimageWithContentsOfFile:、次のように使用します。

self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];

誰かがそこまで読んでいるかどうかわかりませんか?

もしそうなら、これがあなたを助けました:投票してください。;-)

于 2013-08-27T15:42:54.330 に答える
2
UIColor * background = [[UIColor alloc] initWithPatternImage:
    [UIImage imageNamed:@"anImage.png"]];

self.view.backgroundColor = background;
[background release];
于 2012-05-28T07:23:21.797 に答える