iPhoneアプリ開発の虎の巻
HOME > UIImageView

UIImageView

UIImageViewクラスは、画面上での画像表示を管理するクラスです。
画面上に画像を表示するときに使用します。
また、UIImageViewクラスにはアニメーションを行う機能もあり、複数の画像を指定してパラパラマンガみたいな表示を行うこともできます。

UIImageViewのクラス階層

NSObjectUIResponderUIView ↑ UIImageView

UIImageViewの生成

// 生成例
UIImageView *iv = [[UIImageView alloc] init];

// UIImageを指定した生成例
UIImage *image = [UIImage imageNamed:@"Sample.png"];
UIImageView *iv = [[UIImageView alloc] initWithImage:image];

UIImageViewのプロパティ

【UIImageViewの主要プロパティ】
プロパティ名/型 読専 説明
image
UIImage
表示する画像を設定する
(例)iv.image = [UIImage imageNamed:@"Sample.png"];
animationImages
NSArray
アニメーションのコマを設定
(例)iv.animationImages = arr;
 ※arrはUIImageのNSArray
animationRepeatCount
(NSInteger)
アニメーションのリピート回数を設定
(例)iv.animationRepeatCount = 3; //3回
(例)iv.animationRepeatCount = 0; //無限
animationDuration
(NSTimeInterval)
アニメーションの1コマが切り替わる時間を設定
(例)iv.animationDuration = 0.3; //0.3秒に設定
userInteractionEnabled
BOOL
タッチの検知をするかしないかの設定
 YES:タッチの検知をする
 NO:タッチの検知をしない(デフォルト)
※UIViewの同プロパティとデフォルト値が異なるので注意!
(例)iv.userInteractionEnabled = YES;

主要なプロパティのみ掲載しています。
 上記「UIImageViewのクラス階層」にあるクラスのプロパティも使用できます。

UIImageViewのメソッド

【UIImageViewの主要メソッド】
メソッド名 説明
-(void)startAnimating アニメーションを開始させる
(例)[iv startAnimating];
-(void)stopAnimating アニメーションを停止させる
(例)[iv stopAnimating];
-(BOOL)isAnimating アニメーションが開始しているかどうかを取得する
(例)BOOL b = [iv isAnimating];

主要なメソッドのみ掲載しています。
 上記「UIImageViewのクラス階層」にあるクラスのメソッドも使用できます。

UIImageView例文

// 画像表示例文
UIImage *img = [UIImage imageNamed:@"hoge.png"];
UIImageView *iv = [[UIImageView alloc] initWithImage:img];
[self.view addSubview:iv];
// アニメーション例文
UIImage *im1 = [UIImage imageNamed:@"img1.png"];
UIImage *im2 = [UIImage imageNamed:@"img2.png"];
UIImage *im3 = [UIImage imageNamed:@"img3.png"];
NSArray *ims = [NSArray arrayWithObjects:im1, im2, im3, nil];
iv.animationImages = ims;
iv.animationDuration = 1.5;

[iv startAnimating];  // アニメーションを開始したい時に呼ぶ
[iv stopAnimating];  // アニメーションを止めたい時に呼ぶ

UIImageViewの注意点

UIImageViewにUIButtonを乗せただけだとそのUIButtonは反応しません。
それは、UIImageViewはタッチ検知に関する設定がデフォルトで無効となっているからです。

有効にしたい場合は、 userInteractionEnabledプロパティを YES に設定するとボタンが反応するようになります。

iv.userInteractionEnabled = YES;
totop