UIImageView


継承:UIView : UIResponder : NSObject(Class)

従属:UIAppearanceContainer, UICoordinateSpace, NSObject(Protocol), NSCoding, UIDynamicItem , UIFocusEnvironment, UITraitEnvironment, , UIAppearance

フレームワーク: iOS 2.0 以降の UIKit。関連情報...


概観


UIImageView オブジェクトは、単一のイメージまたはあなたのインターフェイスで、アニメーション化されたイメージのシーケンスを表示します。イメージビューを使用すると、効率的に UIImage オブジェクトを使用して指定し、任意のイメージを描画できるようになります。たとえば、JPEG や PNG ファイルのような多くの標準イメージファイルの内容を表示するのに、このクラスを使用できます。プログラム的に、あるいはストーリーボードファイルでイメージビューを構成し、それらが実行時に表示するイメージを変更できます。アニメーション化されたイメージについては、またアニメーションの起動や停止をし、他のアニメーションパラメータを指定するには、このクラスのメソッドを使用できます。



uiimageview_image_2x


基本的なビュー動作の詳細については、iOS 用ビュープログラミングのガイド を参照してください。


画像を拡大縮小される方法の理解


イメージビューは、その contentMode プロパティを使用し、イメージを表示する方法を決定するのにイメージ自体の構成を使用します。その寸法が正確にイメージビューの寸法に一致するイメージを指定するのが最善ですが、イメージビューは、すべてまたは利用可能なスペースの一部に合わせてイメージを拡大縮小することができます。イメージビューのサイズ自体が変更した場合は、必要に応じて、自動的にイメージを拡大縮小します。


キャップインセットのないイメージの場合、イメージの表現は、イメージビューの contentMode プロパティによってのみ決定されます。UIViewContentModeScaleAspectFitUIViewContentModeScaleAspectFill モードがイメージの元の縦横比を維持しながら、スペースを埋めるか適合させるために、画像を書くだお縮小します。UIViewContentModeScaleToFill 値は、イメージが歪んで見えることがありますが元の縦横比に関係なく、イメージを拡大縮小します。その他のコンテンツモードは、それを拡大縮小することなく、イメージビューの境界の適切な位置にイメージを配置します。


イメージを準備する方法のヒントについては、イメージビューで問題を徹底的に調べる を参照してください。キャップインセットでサイズ変更可能なイメージの作成の詳細については、UIImage クラスリファレンス を参照してください。


画像の最終的な透明度の決定


イメージはイメージビューの背景上に合成され、その後、ウィンドウの残りの部分に合成されます。イメージ内の任意の透明度で、イメージビューの背景が透けて見えるようになります。同様に、任意のさらなる透明性は イメージビューの透明性と、それが表示する UIImage オブジェクトの透明度に依存しています。イメージビューとイメージが両方とも透明性を有する場合、イメージビューは、二つを結合するアルファブレンディングを使用します。



重要:不透明でないイメージビューの alpha チャンネルを持つイメージのアルファチャンネルを合成するのは計算コストが高いです。Core Animation のシャドウを使用する場合は、シャドウの形状は、その時のビューの内容に基づいており、動的に計算されなければならないので、パフォーマンスへの影響はさらに拡大されます。意図的にイメージの alpha チャンネルまたはイメージビューの alpha チャンネルを使用していない場合は、パフォーマンスを向上させるために opaque プロパティを NO に設定します。追加の最適化のヒントについては、パフォーマンス向上のためのヒント を参照してください。


イメージシーケンスをアニメーション化


イメージビューは、アニメーション化したイメージシーケンスを格納し、そのシーケンスのすべてまたは一部を再生できます。UIImage オブジェクトの配列として、イメージシーケンスを指定し、それらを animationImages プロパティに割り当てます。一度割り当てられると、アニメーションのタイミングと、開始と停止を構成するには、このクラスのメソッドとプロパティを使用できます。



注意: また、animatedImageWithImages:duration: メソッドを使用して、個々のイメージのシーケンスから単一の UIImage オブジェクトを作成できます。そうすることで animationImages プロパティに個々のイメージを割り当てられたかのように同じ結果が得られます。


アニメーション化されたイメージのシーケンスを表示する場合、以下のヒントを考慮してください。



タッチイベントへの応答


イメージビューは、デフォルトではユーザーイベントを無視します。通常、イメージビューをあなたのインタフェースのビジュアルコンテンツを提示するだけのために使用します。イメージビューも同様にユーザーとの対話を処理したい場合は、その userInteractionEnabled プロパティの値を YES に変更します。それを終えたら、ジェスチャー認識装置を接続し、タッチイベントに反応する他のイベント処理技術を使用し、他のユーザーが開始したイベントに応答できます。


イベントの処理の詳細については、iOS 用イベントの処理ガイド を参照してください。


パフォーマンス向上のためのヒント


イメージ拡大縮小やアルファブレンディングは、アプリのパフォーマンスに影響を与える 2 つの比較的高価な操作です。あなたのイメージビューのコードのパフォーマンスを最大化するために、以下のヒントを考慮してください。



イメージビューを使用した問題のデバッグ


イメージビューが、あなたが期待したものを表示していない場合は、問題の診断に役立つ以下のヒントを使用します。


Interface Builder 属性


表 1 は、Interface Builder でのイメージビューのために構成する属性を一覧にしました。


表 1 イメージビューの属性

属性議論
イメージ表示するべき画像。スタンドアロンのイメージやイメージアセット内のそれらを含め、Xcode プロジェクト内の全てのイメージを指定できます。プログラムでこの属性を設定するには、imageanimationImages プロパティを使用して下さい。
強調表示イメージビューが強調表示されたときに表示すべきイメージ。プログラムでこの属性を設定するには、highlightedImagehighlightedAnimationImages プロパティを使用して下さい。
スケールイメージの初期状態。強調表示としてイメージをマークするため、この属性を使用して下さい。プログラムでこの属性を設定するには、highlighted プロパティを使用して下さい。

国際化


ビューが、あなたのアプリ・バンドルからロードされた静止イメージのみを表示する場合はイメージビューの国際化は自動的に行われます。あなたがプログラムでイメージをロードする場合は、少なくとも部分的に正しいイメージをロードする責任があります。



注意: スクリーンの指標とレイアウトはまた、あなたのイメージの国際化バージョンが異なる寸法を持っている場合は特に、言語およびロケールに応じて変更されることもあります。可能であれば、イメージリソースの国際化バージョンの寸法の差異を最小にするようにしてみてください。


詳細については、国際化とローカライゼーション・ガイド を参照してください。


アクセシビリティ


イメージビューはデフォルトでアクセス可能です。イメージビュー用のデフォルトのアクセシビリティ形質はイメージとユーザーの相互作用が有効になっています。


iOS の、アクセスを制御することの詳細については、UIcontrol クラスリファレンス のアクセシビリティ情報を参照してください。インターフェイスにアクセスすることの一般的な情報については、iOS 用のアクセシビリティプログラミングガイド を参照してください。


状態の保存


イメージビューの restorationIdentifier プロパティに値を割り当てると、それは表示されたイメージのフレームを保存しようとします。具体的には、クラスはビューの boundscenter 及び transform プロパティの値を保持し、基礎の層の anchorPoint プロパティを保存します。復元時には、イメージビューは完全に以前のように表示されるように、イメージビューは、これらの値を復元します。状態の保存と復元がどのように動作するかの詳細については、iOS 用アプリプログラミングガイド を参照してください。


タスク


イメージビューの初期化


– initWithImage:


指定されたイメージで初期化されたイメージビューを返します。


宣言

<< SWIFT >>

init(image image: UIImage?)

<< OBJECTIVE-C >>
- (instancetype)initWithImage:(UIImage *)image


パラメーター

imageイメージビューに表示すべき初期画イメージ。イメージのアニメーションシーケンスを含むイメージオブジェクトを指定できます。

戻り値

初期化されたイメージビューオブジェクト。


議論

あなたが指定したイメージは、イメージビュー自体の初期サイズを構成するために使用されます。イメージビューの最終的なサイズをスクリーン上に調整するために、制約およびイメージビューのコンテンツモードを使用します。このメソッドは、userInteractionEnabled プロパティを NO に設定することにより、イメージビューのためのユーザーの相互作用を無効にします。


その期間が 0 よりも大きいアニメーション化されたイメージを指定した場合、イメージビューは自動的にアニメーションの再生を開始します。


利用可能

iOS 2.0 以降で利用可能。





– initWithImage:highlightedImage:


指定された正規で強調表示されたイメージで初期化されたイメージビューを返します。


宣言

<< SWIFT >>

       init(image image: UIImage?,
highlightedImage highlightedImage: UIImage?)

<< OBJECTIVE-C >>
- (instancetype)initWithImage:(UIImage *)image
             highlightedImage:(UIImage *)highlightedImage


パラメーター

image イメージビューに表示すべき初期画像。イメージのアニメーション化されたシーケンスを含むイメージオブジェクトを指定できます。
highlightedImageイメージビューが強調表示されたときに表示すべきイメージ。イメージのアニメーション化されたシーケンスを含むイメージオブジェクトを指定できます。

戻り値

初期化されたイメージビューオブジェクト。


議論

指定したイメージは、イメージビュー自体の初期サイズを構成するために使用されます。イメージビューの最終的なサイズをスクリーン上に調整するために、制約およびイメージビューのコンテンツモードを使用して下さい。このメソッドは、userInteractionEnabled プロパティを NO に設定することにより、イメージビューのためのユーザーの相互作用を無効にします。


その期間が 0 よりも大きいのアニメーション化されたイメージを指定した場合、イメージビューは自動的にアニメーション再生を開始します。


利用可能

iOS 3.0 以降で利用可能。





表示される画像へのアクセス


image プロパティ


イメージビューに表示されたイメージ。


宣言

<< SWIFT >>

var image: UIImage?

<< OBJECTIVE-C >>
@property(nonatomic, strong) UIImage *image


議論

このプロパティは、イメージビューで表示される主要なイメージを含んでいます。イメージビューが、その自然な状態にあるとき、このイメージが表示されます。強調表示された場合、highlightedImage プロパティの代わりにイメージビューは、イメージを表示します。そのプロパティが nil に設定されている場合は、イメージビューは、このイメージにデフォルトの強調表示を適用します。animationImages プロパティはイメージの有効なセットを含んでいる場合は、それらのイメージが代わりに使用されます。


このプロパティのイメージを変更しても、イメージビューのサイズは自動的に変更しません。イメージを設定した後、新しいイメージとアクティブな制約に基づいてイメージビューのサイズを再計算する sizeToFit メソッドを呼び出して下さい。


このプロパティは、初期化時に指定したイメージに設定されています。あなたのイメージビューを初期化するのに initWithImage:initWithImage:highlightedImage: メソッドを使用しなかった場合、このプロパティの初期値は nil です。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

animationImages
highlightedImage




highlightedImage プロパティ


イメージビューに表示された強調されたイメージ。


宣言

<< SWIFT >>

var highlightedImage: UIImage?

<< OBJECTIVE-C >>
@property(nonatomic, strong) UIImage *highlightedImage


議論

イメージビューの highlighted プロパティが YES の時、このプロパティのイメージが表示されます。highlightedAnimationImages プロパティがイメージの有効なセットを含んでいる場合は、代わりにそれらのイメージが使用されます。


このプロパティは、初期化時に指定したイメージ(もしあれば) に設定されています。あなたのイメージビューを初期化するのに initWithImage:highlightedImage: メソッドを使用しなかった場合、このプロパティの初期値は nil です。


利用可能

iOS 3.0 以降で利用可能。


以下も見よ

highlightedAnimationImages




イメージのシーケンスをアニメーション化する


animationImages プロパティ


アニメーションに使用する UIImage オブジェクトの配列。


宣言

<< SWIFT >>

var animationImages: [UIImage]?

<< OBJECTIVE-C >>
@property(nonatomic, copy) NSArray <UIImage *> *animationImages


議論

配列は、UIImage オブジェクトを含めなければなりません。配列に何度も同じイメージオブジェクトを使用してもよいです。このプロパティをnil 以外の値に設定すると、image プロパティによって表されるイメージを非表示にします。このプロパティの値は、デフォルトでは nil です。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

image




highlightedAnimationImages プロパティ


ビューが強調表示されたときに、アニメーションに使用するべき UIImage オブジェクトの配列。


宣言

<< SWIFT >>

var highlightedAnimationImages: [UIImage]?

<< OBJECTIVE-C >>
@property(nonatomic, copy) NSArray <UIImage *> *highlightedAnimationImages


議論

配列は、UIImage オブジェクトを含めなければなりません。配列に何度も同じ画像オブジェクトを使用してもよいです。このプロパティを nil 以外の値に設定すると、highlightedImage プロパティによって表されるイメージを非表示にします。このプロパティの値は、デフォルトでは nil です。


利用可能

iOS 3.0 以降で利用可能。


以下も見よ

highlightedImage




animationDuration プロパティ


イメージの周期一回を通過するのにかかる時間の量。


宣言

<< SWIFT >>

var animationDuration: NSTimeInterval

<< OBJECTIVE-C >>
@property(nonatomic) NSTimeInterval animationDuration


議論

持続時間は秒単位で測定されます。このプロパティのデフォルト値は 1 秒の 1/30 を乗じたイメージの数に等しい持続時間を使用する、イメージビューの原因となる 0.0 です。このように、30 のイメージがある場合、持続時間は 1 秒になります。


利用可能

iOS 2.0 以降で利用可能。





animationRepeatCount プロパティ


アニメーションを繰り返す回数を指定します。


宣言

<< SWIFT >>

var animationRepeatCount: Int

<< OBJECTIVE-C >>
@property(nonatomic) NSInteger animationRepeatCount


議論

デフォルト値は 0 で、無限にアニメーションを繰り返します。


利用可能

iOS 2.0 以降で利用可能。





– startAnimating


受信者でイメージのアニメーション化を開始します。


宣言

<< SWIFT >>

func startAnimating()

<< OBJECTIVE-C >>
- (void)startAnimating


議論

このメソッドは、リストの最初のイメージからアニメーションを常に開始します。


利用可能

iOS 2.0 以降で利用可能。





– stopAnimating


受信者でイメージのアニメーション化を停止します。


宣言

<< SWIFT >>

func stopAnimating()

<< OBJECTIVE-C >>
- (void)stopAnimating


利用可能

iOS 2.0 以降で利用可能。





– isAnimating


アニメーションが実行されているかどうかを示すブール値を返します。


宣言

<< SWIFT >>

func isAnimating() -> Bool

<< OBJECTIVE-C >>
- (BOOL)isAnimating


戻り値

アニメーションが実行されている場合は YES。それ以外の場合は、NO


利用可能

iOS 2.0 以降で利用可能。





イメージビューの構成


userInteractionEnabled プロパティ


無視され、イベントキューから削除されるかどうかを決定するブール値。


宣言

<< SWIFT >>

var userInteractionEnabled: Bool

<< OBJECTIVE-C >>
@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled


議論

このプロパティは、UIView の親クラスから継承されます。このクラスは、このプロパティのデフォルト値を NO に変更します。


利用可能

iOS 2.0 以降で利用可能。





highlighted プロパティ


イメージが強調表示されているかどうかを決定するブール値。


宣言

<< SWIFT >>

var highlighted: Bool

<< OBJECTIVE-C >>
@property(nonatomic, getter=isHighlighted) BOOL highlighted


議論

このプロパティは、普通の、または強調表示されたイメージが使用されているかどうかを決定します。highlightedYES に設定されている場合、アニメーション化されていないイメージは highlightedImage プロパティを使用し、アニメーション化されたイメージは highlightedAnimationImages を使用します。これらのプロパティの両方が nil に設定されているか、または highlightedNO に設定されている場合、それは imageanimationImages プロパティを使用します。


利用可能

iOS 3.0 以降で利用可能。





tintColor プロパティ


ビュー階層内の tint テンプレートイメージに使用される色。


宣言

<< SWIFT >>

var tintColor: UIColor!

<< OBJECTIVE-C >>
@property(nonatomic, strong) UIColor *tintColor


議論

デフォルトは nil です。nil でない値が指定されている場合、色はイメージビューに付属した全てのテンプレートイメージに適用されます。詳細については、UIImage クラスの renderingMode プロパティを参照してください。


利用可能

iOS 7.0 以降で利用可能。





次の章
目次
Xcode の新機能

  • UIImageView
  • 概観
  • 画像を拡大縮小される方法の理解
    画像の最終的な透明度の決定
    イメージシーケンスをアニメーション化
    タッチイベントへの応答
    パフォーマンス向上のためのヒント
    イメージビューを使用した問題のデバッグ
    Interface Builder 属性
    国際化
    アクセシビリティ
    状態の保存
  • タスク
  • イメージビューの初期化
  • initWithImage:
    initWithImage:highlightedImage:
  • 表示される画像へのアクセス
  • image プロパティ
    highlightedImage プロパティ
  • イメージのシーケンスをアニメーション化する
  • animationImages プロパティ
    highlightedAnimationImages プロパティ
    animationDuration プロパティ
    animationRepeatCount プロパティ
    startAnimating
    stopAnimating
    isAnimating
  • イメージビューの構成
  • userInteractionEnabled プロパティ
    highlighted プロパティ
    tintColor プロパティ
    文書改定履歴












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)












    トップへ(UIImageView)