UIView


継承:UIResponder : NSObject(Class)

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

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


UIView クラスは、画面とその領域内のコンテンツを管理するためのインターフェイス上の矩形領域を定義します。実行時には、View オブジェクトは、そのエリア内のすべてのコンテンツのレンダリングを処理し、またそのコンテンツとの任意の相互作用を処理します。UIView クラス自体は、背景色で、その矩形領域を充填するための基本的な動作を提供します。より洗練されたコンテンツは、UIView のサブクラス化と、必要な描画とイベント処理コードをあなた自身で実装することによって提示できます。UIKit フレームワークは、また単純なボタンから複雑な表までの範囲であり、そのまま使用することができる標準的なサブクラスのセットを含んでいます。例えば、UILabel オブジェクトは、テキスト文字列を描画し、UIImageView オブジェクトはイメージを描画します。


View オブジェクトは、アプリケーションがユーザーと対話する主な方法であるため、それらは責任を数多く持っています。ここにごく一部を挙げます:


View は他の Viewを埋め込み、洗練された視覚的な階層を作成できます。これは、(subview として知られる) 埋め込まれている View の間に親子関係を作成し、(superview として知られている) 親 View の埋め込みを作成します。通常は、サブビューの可視領域は、そのスーパービューの境界にクリップされていませんが、iOS の中では、その動作を変更するために clipsToBounds プロパティを使用できます。親 View は、サブビューを任意の数だけ含んでいてもよいですが、各サブビューには、適切にそのサブビューを配置するための責任がある一つだけのスーパービューがあります。


View の形状は、その frameboundscenter プロパティによって定義されます。frame は原点と、そのスーパービューの座標系における、ビューの寸法を定義し、一般的にビューのサイズと位置を調整するために、レイアウト時に使用されます。center プロパティは、その大きさを変えずにビューの位置を調整するために使用できます。それが見た通りに、カスタム描画コードでほぼ独占的に使用される境界は、ビューの内部寸法を定義します。frame と境界の長方形のサイズ部分はいずれかの長方形の大きさを変更すると、両方のサイズを更新するように連結されています。


UIView クラスを使用する方法の詳細については、iOS 用のビュープログラミングガイド を参照してください。



注意: iOS 2.x では、UIView オブジェクトの最大サイズは 1024 × 1024 ポイントです。iOS 3.0 以降では、View は、もはやこの最大サイズに制限されていませんが、それでもそれらが消費するメモリの量によって制限されています。可能な限り小さく View のサイズを保つのは、最善の関心事です。どちらの iOS のバージョンが実行されているかに関わらず、画面の寸法よりも著しく大きいコンテンツを分割して表示するのを検討する必要があります。


ビューの作成


プログラムで View を作成するには、次のようなコードを使用できます。


  1. CGRect viewRect = CGRectMake(10, 10, 100, 100);
  2. UIView* myView = [[UIView alloc] initWithFrame:viewRect];

このコードは、View を作成し、(それはそのスーパービューに追加されると) そのスーパービューの座標系における点(10、10) にそれを配置します。別のビューにサブビューを追加するには、addSubview: メソッドを使用します。iOS では、兄弟のビューは、複雑なビューの配置を可能にし、何の問題もなく、お互いに重複してもよいです。addSubview: メソッドは、他の兄弟の上に指定されたビューを配置します。insertSubview:aboveSubview:insertSubview:belowSubview: メソッドを使用してそれを追加することで、サブビューの相対的な z 順序を指定できます。exchangeSubviewAtIndex: withSubviewAtIndex: メソッドを使用して既に追加されたサブビューの位置を交換することもできます。


ビューを作成する場合は、ビューが正しくサイズ変更されているのを保証するために autoresizingMask プロパティに適切な値を割り当てることが重要です。アプリケーションのインターフェイスの変更の向きが、他の時に起こる可能性がある場合、主にビューのサイズ変更が発生します。例えば、setNeedsLayout メソッドを呼び出すと、そのレイアウトを強制的に更新するビューを生じます。


ビューの描画サイクル


ビューの描画は、必要に応じて発生します。ビューは最初に表示され、その一部または全部がレイアウトの変更が原因でに見えるようになり、システムは、その内容を描画するようにビューを要求します。UIKit か、コアグラフィックスを使用しているカスタムコンテンツを含んでいるビューの場合、システムはビューの drawRect: メソッドを呼び出します。このメソッドの実装は、このメソッドを呼び出す前に自動的にシステムによって設定された、現在のグラフィックスコンテキストの中にビューのコンテンツを描画するための責任があります。これは、画面上に表示することができる、あなたのビューの内容の静的な視覚表現を作成します。


あなたのビューの実際の内容が変更した時、あなたのビューを再描画する必要があるシステムに通知する責任があります。ビューの setNeedsDisplay または setNeedsDisplayInRect: メソッドを呼び出してこれを行います。これらのメソッドは、システムに、次の描画サイクル中にビューを更新する必要があることを知らせます。ビューを更新するために、次の描画サイクルまで待機しているので、それらを同時に更新するために複数のビューでこれらのメソッドを呼び出すことができます。



注意: あなたの描画を行うため OpenGL ES を使用している場合は、UIView のサブクラス化をする代わりに GLKView クラスを使用する必要があります。OpenGL ES を使用して描画する方法の詳細についてはiOS 用 OpenGL ES プログラミングガイド を参照してください。


この描画サイクルの詳細と、今サイクルのビューが持っている役割については、iOS 用のビュー・プログラミング・ガイド を参照してください。


アニメーション


いくつかのビューのプロパティを変更すると、アニメーション化されます - すなわち、プロパティを変更すると、短時間にユーザーに変更を伝えるアニメーションを作成します。UIView クラスは、実際のアニメーションを実行する作業のほとんどを行いますが、まだあなたがアニメーション化したいプロパティの変更を示す必要があります。アニメーションを開始するには、2つの異なる方法があります:


(animateWithDuration:animations: のような)ブロックベースのアニメーションメソッドは、非常に簡単にアニメーションを作成できます。1つのメソッド呼び出しで、実行されるアニメーションやアニメーションのオプションを指定します。しかし、ブロックベースのアニメーションは、iOS 4 以降で飲み利用可能です。アプリケーションが iOS の以前のバージョンで実行されている場合、先頭と終わりをマークするため、beginAnimations:context:commitAnimations クラスメソッドを使用しなければなりません。


UIView クラスの以下のプロパティがアニメーション可能です:


    @property frame

    @property bounds

    @property center

    @property transform

    @property alpha

    @property backgroundColor

    @property contentStretch

アニメーションを構成する方法の詳細については、iOS 用ビュープログラミングガイド を参照してください。


スレッド化の考慮事項


アプリケーションのユーザインターフェイスへの操作は、必ずメインスレッド上で発生します。したがって、常にあなたのアプリケーションのメインスレッドで実行されているコードから UIView クラスのメソッドを呼び出す必要があります。ビューオブジェクト自体を作成する時、これは厳密には必要ではないかもしれませんが、他のすべての操作は、メインスレッド上で発生すべきです。


サブクラス化における注意事項


UIView クラスはまた、ユーザーの相互作用を必要とするビジュアルコンテンツ用の主なるサブクラスポイントです。UIView のサブクラスを作成するのには多くの理由がありますが、基本的なUIView クラスまたは標準のシステムビューは、必要な機能を提供していない場合にのみ、あなたが行うことをお勧めします。サブクラス化は、そのパフォーマンスを調整するビューを実装するためにあなたの多くの作業が必要です。


サブクラス化を避ける方法の詳細については、サブクラス化の代替方法 を参照してください。


オーバーライドするべきメソッド


UIView をサブクラス化すると、オーバーライドする必要がある一握りのメソッドと、あなたのニーズに応じてオーバーライドする可能性がある多くのメソッドがあります。UIView は、高度に構成可能なクラスであるため、また、サブクラス化の代替方法のセクションで議論されている、カスタムメソッドをオーバーライドすることなく、洗練されたビューの動作を実装するための多くの方法があります。その間に、以下のリストは、あなたの UIView のサブクラスでオーバーライドを検討するべきメソッドを含んでいます。


サブクラス化の代替方法


多くのビューの動作は、サブクラス化を必要とせずに構成できます。メソッドのオーバーライド開始前に、あなたが必要とする動作を提供するであろう以下のプロパティや動作を変更するかどうかを検討して下さい。


アニメーションは、サブクラス化し、複雑な描画コードを実装するのを必要とせずにビューに見える変更を行うための別の方法です。UIView クラスの多くのプロパティは、システムで生成されたアニメーションをトリガすることができる、これらのプロパティへの変更を意味する、アニメーションが可能です。アニメーションを開始すると、すべての変更がアニメーション化する必要があることを示すために、コードのわずか1行が必要です。ビューのアニメーションのサポートの詳細については、アニメーション を参照してください。


外観と動作の構成の詳細については、UIKit ユーザーインターフェース・カタログビューについて を参照してください。


タスク


ビュー・オブジェクトの初期化


- initWithFrame: 指定イニシャライザ


初期化し、指定されたフレームの長方形で新しく割り当てられたビューオブジェクトを返します。


宣言

<< SWIFT >>

init(frame frame: CGRect)

<< OBJECTIVE-C >>
- (instancetype)initWithFrame:(CGRect)aRect


パラメーター

aRectポイント単位で測られたビューのフレームの長方形。フレームの原点は、それを追加する予定のスーパービューに対して相対的です。このメソッドでは、それに応じてフレーム長方形を使用して centerbounds プロパティを設定します。

戻り値

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


議論

使用できる前に新しいビュー・オブジェクトは、ウィンドウのビュー階層に挿入しなければなりません。プログラムでビュー・オブジェクトを作成した場合、このメソッドは、UIView クラスの指定イニシャライザです。サブクラスは、任意のカスタム初期化を実行するには、このメソッドをオーバーライドできますが、その実装の初めに super を呼び出さなければなりません。


インターフェースを設計するために Interface Builder を使用している場合は、ビューオブジェクトは、その後、nib ファイルからロードされており、このメソッドは呼び出されません。nib ファイル内のオブジェクトは、再構成された後、それらの nitWithCoder: メソッドを使用して初期化され、nib ファイルに保存されている属性と一致するように、ビューの属性を変更します。ビューが nib ファイルからロードされる方法の詳細については、リソースプログラミングガイド を参照してください。


利用可能

iOS 2.0 以降で利用可能。





ビューの外観の構成


backgroundColor プロパティ


ビューの背景色。


宣言

<< SWIFT >>

@NSCopying var backgroundColor: UIColor?

<< OBJECTIVE-C >>
@property(nonatomic, copy) UIColor *backgroundColor


議論

このプロパティへの変更は、アニメーション化できます。デフォルト値は、nil で、透明な背景色になります。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

alpha

opaque





hidden プロパティ


ビューが隠されているかどうかを決定するブール値。


宣言

<< SWIFT >>

var hidden: Bool

<< OBJECTIVE-C >>
@property(nonatomic, getter=isHidden) BOOL hidden


議論

このプロパティの値を YES に設定すると、受信者を非表示にし、NO に設定すると、受信機を表示します。デフォルト値は NO です。


隠されたビューは、そのウィンドウから消え、入力イベントを受信しません。しかし、サブビューのそのスーパービューのリストに残り、そしていつものように自動サイズ変更に参加しています。サブビューでビューを隠すと、それらのサブビューとそれらが持っているかもしれない任意のビューの子孫を隠す効果があります。この効果は、暗黙的で、受信者の子孫の隠された状態を変更しません。


ウィンドウの現在のファーストレスポンダは、新しいファーストレスポンダになるために、ビューの次の有効なキービューを引き起こしているビューを非表示にします。


このプロパティの値は、受信者だけの状態を反映し、ビュー階層内の受信者の祖先の状態を考慮していません。したがって、このプロパティは NO であり得ますが、祖先が隠されている場合、受信者はまだ隠されていることがあります。


利用可能

iOS 2.0 以降で利用可能。





alpha プロパティ


ビューのアルファ値。


宣言

<< SWIFT >>

var alpha: CGFloat

<< OBJECTIVE-C >>
@property(nonatomic) CGFloat alpha


議論

このプロパティの値は、範囲 0.0 から 1.0 の浮動小数点数で、0.0 は完全に透明を表し、1.0 は完全に不透明表します。この値は、現在の表示だけに影響を及ぼし、その埋め込まれたサブビューのいずれかには影響を与えません。


このプロパティへの変更は、アニメーション化できます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

backgroundColor

opaque





opaque プロパティ


ビューが不透明であるかどうかを決定するブール値。


宣言

<< SWIFT >>

var opaque: Bool

<< OBJECTIVE-C >>
@property(nonatomic, getter=isOpaque) BOOL opaque


議論

このプロパティは、それがビューをどう扱うべきかについて描画システムにヒントを提供します。YES に設定すると、描画システムは、いくつかの描画操作を最適化し、パフォーマンスを向上し、完全に不透明として描画システムは、ビューを扱います。NO に設定すると、描画システムは、他のコンテンツと通常のビューを合成します。このプロパティのデフォルト値は YES です。


不透明なビューは、完全に不透明なコンテンツ、つまり、コンテンツは 1.0 のアルファ値を有するべき境界を埋めることが期待されます。ビューが不透明で、どちらかがその境界を満たさないか、完全にまたは部分的に透明なコンテンツを含んでいる場合、結果は予測できません。ビューが完全にまたは部分的に透明である場合には、必ずこのプロパティの値を NO に設定する必要があります。


drawRect: メソッドを使用して、独自のコンテンツを描画する UIView のサブクラスで opaque プロパティの値を設定する必要だけがあります。opaque プロパティは、UIButtonUILabelUITableViewCell などのような、システム提供のクラスでは効果がありません。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

backgroundColor

alpha





tintColor プロパティ


ビュー階層の最初のデフォルト以外の薄い色(tint color) の値で、ビュー自体で始まり、それから昇順で続きます。


宣言

<< SWIFT >>

var tintColor: UIColor!

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


議論

システムが、階層内のデフォルト以外の色を見つけることができない場合は、このプロパティの値が代わりにシステム定義の色です。


ビューの tintAdjustmentMode プロパティの値が UIViewTintAdjustmentModeDimmed の場合、tintColor プロパティの値が自動的に薄暗く表示されます。


このプロパティが変更した時サブビューのレンダリングを更新するには、tintColorDidChange メソッドをオーバーライドします。


パターンの色(UIColor クラスリファレンス で説明したように) である色はサポートされていません。



重要: tint color としてパターンの色を使用しようとすると、システムは例外を発生させます。


利用可能

iOS 7.0 以降で利用可能。


以下も見よ

– tintColorDidChange





tintAdjustmentMode プロパティ


ビュー階層の最初のデフォルト以外の tint 調整モード値であり、ビュー自体で始まりそれから昇順で続きます。


宣言

<< SWIFT >>

var tintAdjustmentMode: UIViewTintAdjustmentMode

<< OBJECTIVE-C >>
@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode


議論

このプロパティの値が UIViewTintAdjustmentModeDimmed である場合、tintColor プロパティの値は、薄暗い外観を提供するように変更されます。


このプロパティを照会するとき、システムがサブビューの階層内でデフォルト以外の値を見つけられない場合は、値は UIViewTintAdjustmentModeNormal です。


(ビューの値を変更したり、そのスーパーびゅーの値のいずれかの変更によって) このプロパティの値が変更されると、システムは、ビューがそのレンダリングを更新することを可能にするように tintColorDidChange メソッドを呼び出します。


利用可能

iOS 7.0 以降で利用可能。





clipsToBounds プロパティ


サブビューがビューの境界に限定されているかどうかを決定するブール値。


宣言

<< SWIFT >>

var clipsToBounds: Bool

<< OBJECTIVE-C >>
@property(nonatomic) BOOL clipsToBounds


議論

この値を YES に設定すると、サブビューは受信者の境界にクリップされます。NO に設定すると、そのサブビューのフレームは、クリップされていない受信者の可視範囲を超えて、延びます。デフォルト値は NO です。


利用可能

iOS 2.0 以降で利用可能。





clearsContextBeforeDrawing プロパティ


ビューの境界を描画する前に自動的にクリアする必要があるかどうかを決定するブール値。


宣言

<< SWIFT >>

var clearsContextBeforeDrawing: Bool

<< OBJECTIVE-C >>
@property(nonatomic) BOOL clearsContextBeforeDrawing


宣言

YES に設定すると、描画バッファは自動的にクリアされ、drawRect:メソッドが呼ばれる前に透明な黒になります。この動作は、ビューの内容が再描画されるときに余計な視覚的アーチファクトがないことを保証します。ビューの opaque プロパティも YES に設定されている場合は、ビューの backgroundColor プロパティは nil であってはならず、もしそうなr描画エラーが発生することがあります。このプロパティのデフォルト値は YES です。


このプロパティの値を NO に設定した場合、あなたの drawRect: メソッドで適切にビューの内容が描画されるのを保証する責任があなたにはあります。描画コードが既に十分最適化されている場合は、このプロパティを NO に設定することは、特にビューの一部だけを再描画する必要がある場合だけ、スクロール中に、パフォーマンスを向上させることができます。


利用可能

iOS 2.0 以降で利用可能。





maskView プロパティ


そのアルファチャネルオプションのビューは、ビューの内容をマスクするために使用されます。


宣言

<< SWIFT >>

var maskView: UIView?

<< OBJECTIVE-C >>
@property(nonatomic, strong) UIView *maskView


議論

ビューの alpha チャンネルは、ビューのコンテンツをどの程度、背景が透けて表示するかを決定します。完全にまたは部分的に opaque なピクセルは、下にあるコンテンツを透けて表示することを可能にするが、完全に透明なピクセルは、そのコンテンツをブロックします。


利用可能

iOS 8.0 以降で利用可能。





+ layerClass


このクラスのインスタンス用のレイヤーを作成するために使用されるクラスを返します。


宣言

<< SWIFT >>

class func layerClass() -> AnyClass

<< OBJECTIVE-C >>
+ (Class)layerClass


戻り値

ビューの Core Animation レイヤーを作成するために使用されるクラス。


議論

このメソッドは、デフォルトでは CALayer クラスオブジェクトを返します。サブクラスは、このメソッドをオーバーライドし、必要に応じて異なるレイヤークラスを返せます。例えば、あなたのビューが大きなスクロール可能な領域を表示するために分割表示を使用している場合、このメソッドをオーバーライドし、CATiledLayer クラスを返したいかもしれません。


このメソッドは、対応するレイヤーオブジェクトを作成するために、一度だけ初期のビューの作成で呼ばれます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

layer





layer プロパティ


レンダリングのために使用されるビューの Core Animation レイヤー。(読み取り専用)


宣言

<< SWIFT >>

var layer: CALayer { get }

<< OBJECTIVE-C >>
@property(nonatomic, readonly, strong) CALayer *layer


議論

このプロパティは、決して nil にはなりません。オブジェクトの実際のクラスは layerClass メソッドによって返される値によって決定されます。ビューは、layer のデリゲートです。



警告: ビューは layer のデリゲートなので、ビューを別の CALayer オブジェクトのデリゲートにしては絶対にいけません。また、この layer オブジェクトのデリゲートを決して変更してはいけません。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ layerClass



イベント関連動作の構成


userInteractionEnabled プロパティ


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


宣言

<< SWIFT >>

var userInteractionEnabled: Bool

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


議論

NO に設定すると、タッチやキーボード入力のようなユーザーイベントは、無視され、イベントキューから削除されるビュー用として意図されます。YES に設定すると、イベントは普通にビューに配信されます。このプロパティのデフォルト値は YES です。


アニメーション中に、ユーザ相互作用は一時的に、このプロパティの値にかかわらず、アニメーションに含まれるすべてのビューで無効になっています。あなたはアニメーションを構成するとき UIViewAnimationOptionAllowUserInteraction オプションを指定すると、この動作を無効にできます。



注意: いくつかの UIKit サブクラスはこのプロパティをオーバーライドして、異なるデフォルト値を返します。それが別の値を返すかどうかを判断するために、そのクラスのドキュメントを参照してください。


利用可能

iOS 2.0 以降で利用可能。





multipleTouchEnabled プロパティ


受信者が、マルチタッチイベントを処理するかどうかを示すブール値。


宣言

<< SWIFT >>

var multipleTouchEnabled: Bool

<< OBJECTIVE-C >>
@property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled


議論

YES に設定すると、受信者は、マルチタッチシーケンスに関連付けられているすべてのタッチを受け付けます。NO に設定すると、受信者は、マルチタッチシーケンスの最初のタッチイベントだけを受け取ります。このプロパティのデフォルト値は NO です。


このプロパティが NO のときに、同じウィンドウ内の他のビューはまだタッチイベントを受け取ることができます。このビューが排他的にマルチタッチイベントを処理したい場合は、このプロパティと exclusiveTouch プロパティの両方の値を YES に設定します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

exclusiveTouch





exclusiveTouch プロパティ


受信者が排他的にタッチイベントを処理するかどうかを示すブール値。


宣言

<< SWIFT >>

var exclusiveTouch: Bool

<< OBJECTIVE-C >>
@property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch


議論

このプロパティを YES に設定すると、受信者に同じウィンドウ内の他のビューへのタッチイベントの配信をブロックする事を引き起こします。このプロパティのデフォルト値は NO です。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

multipleTouchEnabled





境界とフレームの長方形の構成


frame プロパティ


そのスーパービューの座標系で、位置とサイズを記述するフレームの長方形。


宣言

<< SWIFT >>

var frame: CGRect

<< OBJECTIVE-C >>
@property(nonatomic) CGRect frame


議論

この長方形は、そのスーパービューの座標系でのサイズとビューの位置を定義します。サイズへのレイアウト操作中とビューの配置中にこの長方形を使用して下さい。このプロパティを設定すると、center プロパティで指定されたポイントを変更し、それに応じて bounds の長方形内のサイズを変更できます。フレーム長方形の座標は常にポイントで指定されます。



警告: transform プロパティが識別変でない場合は、このプロパティの値は未定義で、無視されるべきです。


フレーム長方形を変更すると、drawRect:メソッドを呼び出すことなく、受信者を自動的に再表示します。drawRect:メソッドをフレーム長方形が変更した時に呼び出したい時は、UIViewContentModeRedrawcontentMode プロパティを設定して下さい。


このプロパティを変更するのは、アニメーション化することができます。しかし、transform プロパティが非識別変換を含んでいる場合は、frame プロパティの値は未定義であり、変更すべきではありません。その場合、center プロパティを使用してビューを再配置し、代わりに bounds プロパティを使用してサイズを調整できます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

bounds

center

transform





bounds プロパティ


独自の座標系でのビューの位置とサイズを記述する境界の長方形。


宣言

<< SWIFT >>

var bounds: CGRect

<< OBJECTIVE-C >>
@property(nonatomic) CGRect bounds


議論

画面上では、境界の長方形は、そのフレームの長方形としてビューの目に見える同じ部分を表しています。デフォルトでは、境界の長方形の原点は(0、0)に設定されていますが、ビューの異なる部分を表示するには、この値を変更できます。境界の長方形のサイズは、フレームの長方形のサイズに結合されているので、いずれかの変更は、他に影響を与えます。境界のサイズを変更すると、その中心点へとビューを拡大または縮小します。境界の長方形の座標は常にポイントで指定されます。


フレームの長方形を変更すると、drawRect:メソッドを呼び出すことなく、受信者を自動的に再表示します。フレームの長方形が変更した時、drawRect:メソッドを呼び出したい場合は、contentMode プロパティに UIViewContentModeRedraw を設定して下さい。


このプロパティへの変更は、アニメーション化できます。


デフォルトの境界の原点は (0,0) で、サイズはフレームの長方形のサイズと同じです。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

frame

center

transform





center プロパティ


フレームの中心。


宣言

<< SWIFT >>

var center: CGPoint

<< OBJECTIVE-C >>
@property(nonatomic) CGPoint center


議論

中心はそのスーパービューの座標系内で指定されており、ポイントで測定されます。このプロパティを設定すると、それに応じて frame プロパティの値が変更します。


フレームの長方形を変更すると、drawRect:を呼び出すことなく、受信者を自動的に再表示します。フレームの長方形が変更した時 drawRect:メソッドを呼び出したい場合は、 contentMode プロパティに UIViewContentModeRedraw を設定して下さい。


このプロパティへの変更は、アニメーション化できます。beginAnimations:context: クラスメソッドを使用してアニメーションブロックを開始し commitAnimations クラスメソッドを使用して、アニメーションブロックを終了してください。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

frame

bounds

transform




transform プロパティ


その境界の中心への相対の、受信者に適用される変換を指定します。


宣言

<< SWIFT >>

var transform: CGAffineTransform

<< OBJECTIVE-C >>
@property(nonatomic) CGAffineTransform transform


議論

transform が変更された場合、その原点は、center プロパティの値、又はレイヤーの anchorPoint プロパティです。(基礎となる Core Animation のレイヤオブジェクトを取得するために layer プロパティを使用してください。) デフォルト値は CGAffineTransformIdentity です。


このプロパティへの変更は、アニメーション化できます。beginAnimations:context: クラスメソッドを使用してアニメーションブロックを開始し commitAnimations クラスメソッドを使用して、アニメーションブロックを終了してください。デフォルトは center の値が何であれ、それです。(または変更された場合、アンカーポイント)


iOS 8.0 以降では、transform プロパティは、自動レイアウトに影響を与えません。自動レイアウトは、その転換されていないフレームに基づいてビューの整列の長方形を計算します。



警告: このプロパティが識別変換でない場合は、frame プロパティの値は未定義であり、無視されるべきです。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

frame

bounds

center





ビュー階層の管理


superview プロパティ


受信者のスーパービュー、もし持っていない場合は nil。(読み取り専用)


宣言

<< SWIFT >>

var superview: UIView? { get }

<< OBJECTIVE-C >>
@property(nonatomic, readonly) UIView *superview


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

subviews

– removeFromSuperview





subviews プロパティ


受信者の直接のサブビュー。(読み取り専用)


宣言

<< SWIFT >>

var subviews: [UIView] { get }

<< OBJECTIVE-C >>
@property(nonatomic, readonly, copy) NSArray <__kindof UIView *> *subviews


議論

このプロパティを使用して、カスタムビュー階層に関連したサブビューを取得できます。配列内のサブビューの順番は、画面上での視える順序を反映し、インデックス 0 でのビューは、一番後ろのビューを示します。


UIKit および他のシステムフレームワークで宣言された複雑なビューの場合、ビューのすべてのサブビューは、一般的にいつでも変更できる private と考えられます。したがって、システム提供のビューのこれらのタイプのサブビューを取得したり、変更しないでください。そうした場合、あなたのコードは、将来のシステム更新で破損する可能性があります。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

superview

– removeFromSuperview





window プロパティ


受信者のウィンドウオブジェクト。もし持っていない場合は nil。(読み取り専用)


宣言

<< SWIFT >>

var window: UIWindow? { get }

<< OBJECTIVE-C >>
@property(nonatomic, readonly) UIWindow *window


議論

ビューがまだウィンドウに追加されていない場合はこのプロパティは nil です。


利用可能

iOS 2.0 以降で利用可能。





- addSubview:


サブビューの受信者のリストの最後にビューを追加します。


宣言

<< SWIFT >>

func addSubview(_ view: UIView)

<< OBJECTIVE-C >>
- (void)addSubview:(UIView *)view


パラメーター

view追加するべきビュー。追加された後、このビューは、他の全てのサブビューの上部に表示されます。

議論

このメソッドは、view への強い参照を確立し、その新しいスーパービューで受信者にその次のレスポンダを設定します。


ビューは一つだけスーパービューを持つことができます。view にすでにスーパービューがあり、そのビューが受信者でない場合は、このメソッドは、受信者に新しいスーパービューを作成する前に、以前のスーパービューを削除します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– insertSubview:atIndex:
– insertSubview:aboveSubview:
– insertSubview:belowSubview:
– exchangeSubviewAtIndex:withSubviewAtIndex:




- bringSubviewToFront:


兄弟の一番上に表示されるように指定されたサブビューを移動します。


宣言

<< SWIFT >>

func bringSubviewToFront(_ view: UIView)

<< OBJECTIVE-C >>
- (void)bringSubviewToFront:(UIView *)view


パラメーター

view前に移動すべきサブビュー。

議論

このメソッドは、subview プロパティ内のビューの配列の最後に、指定されたビューを移動します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– sendSubviewToBack:




– sendSubviewToBack:


兄弟の背後に表示されるように、指定されたサブビューを移動します。


宣言

<< SWIFT >>

func sendSubviewToBack(_ view: UIView)

<< OBJECTIVE-C >>
- (void)sendSubviewToBack:(UIView *)view


パラメーター

view後ろに移動すべきサブビュー。

議論

このメソッドは、subview プロパティ内のビューの配列の先頭に、指定されたビューを移動します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

bringSubviewToFront:




- removeFromSuperview


スーパービューとそのウインドウからビューをリンク解除し、またレスポンダチェーンから削除します。


宣言

<< SWIFT >>

func removeFromSuperview()

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


議論

ビューのスーパービューが nil でない場合は、スーパービューはビューを解放します。


このメソッドを呼び出すと、削除しようとしている、または削除しているビューのサブツリー内の全てのビューを参照する全ての制約を削除します。



重要: 決してあなたの drawRect:メソッドの中からこのメソッドを呼び出してはなりません。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

superview
subviews




- insertSubview:atIndex:


指定されたインデックスにサブビューを挿入します。


宣言

<< SWIFT >>

func insertSubview(_ view: UIView,
           atIndex index: Int)

<< OBJECTIVE-C >>
- (void)insertSubview:(UIView *)view
              atIndex:(NSInteger)index


パラメーター

view挿入すべきビュー。これは nil にできません。
indexビューを挿入するべき subviews プロパティの配列のインデックス。サブビューのインデックスは 0 から始まり、サブビューの数よりも大きくできません。

議論

このメソッドは、view への強い参照を確立し、その新しいスーパービューである、受信者にその次のレスポンダを設定します。


ビューは一つだけスーパービューを持つことができます。もし view にはすでにスーパーがあり、そのビューが受信者でない場合は、この方メソッドは、受信者に新しいスーパービューを作成する前に、以前のスーパービューを削除します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

- addSubview:
– insertSubview:aboveSubview:
– insertSubview:belowSubview:
– exchangeSubviewAtIndex:withSubviewAtIndex:




– insertSubview:aboveSubview:


ビュー階層内の別のビューの上にビューを挿入します。


宣言

<< SWIFT >>

func insertSubview(_ view: UIView,
      aboveSubview siblingSubview: UIView)

<< OBJECTIVE-C >>
- (void)insertSubview:(UIView *)view
         aboveSubview:(UIView *)siblingSubview


パラメーター

view挿入されるべきビュー。それが siblingSubview の兄弟でなければ、そのスーパービューから削除されます。
siblingSubview挿入されたビューの後ろになる兄弟ビュー。

議論

このメソッドは、view への強い参照を確立し、その新しいスーパービューである、受信者にその次のレスポンダを設定します。


ビューは一つだけスーパービューを持つことができます。もし view にはすでにスーパーがあり、そのビューが受信者でない場合は、この方メソッドは、受信者に新しいスーパービューを作成する前に、以前のスーパービューを削除します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

- addSubview:
- insertSubview:atIndex:
– insertSubview:belowSubview:
– exchangeSubviewAtIndex:withSubviewAtIndex:




- insertSubview:belowSubview:


ビュー階層内の別のビューの下にビューを挿入します。


宣言

<< SWIFT >>

func insertSubview(_ view: UIView,
      belowSubview siblingSubview: UIView)

<< OBJECTIVE-C >>
- (void)insertSubview:(UIView *)view
         belowSubview:(UIView *)siblingSubview


パラメーター

view別のビューの下に挿入するべきビュー。それが siblingSubview の兄弟でなければ、そのスーパービューから削除されます。
siblingSubview挿入されたビューの上になる兄弟ビュー。

議論

ビューは一つだけスーパービューを持つことができます。もし view にはすでにスーパーがあり、そのビューが受信者でない場合は、この方メソッドは、受信者に新しいスーパービューを作成する前に、以前のスーパービューを削除します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

- addSubview:
- insertSubview:atIndex:
- insertSubview:aboveSubview:
– exchangeSubviewAtIndex:withSubviewAtIndex:




– exchangeSubviewAtIndex:withSubviewAtIndex:


指定されたインデックスでサブビューを交換します。


宣言

<< SWIFT >>

func exchangeSubviewAtIndex(_ index1: Int,
         withSubviewAtIndex index2: Int)

<< OBJECTIVE-C >>
- (void)exchangeSubviewAtIndex:(NSInteger)index1
            withSubviewAtIndex:(NSInteger)index2


パラメーター

index1受信者内の最初のサブビューのインデックス。
index2受信者内の2番目のサブビューのインデックス。

議論

各インデックスは subviews プロパティ内の配列内の対応するビューの位置を表します。サブビューのインデックスは 0 から始まり、サブビューの数よりも大きくすることはできません。このメソッドは、いずれかのビューのスーパービューを変更することはありませんが、単に subviews 配列内のそれらの位置を交換します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

- addSubview:
- insertSubview:atIndex:
- insertSubview:aboveSubview:
– insertSubview:belowSubview:




- isDescendantOfView:


受信者がそのビューに与えられたビューまたは同一のサブビューかどうかを示すブール値を返します。


宣言

<< SWIFT >>

func isDescendantOfView(_ view: UIView) -> Bool

<< OBJECTIVE-C >>
- (BOOL)isDescendantOfView:(UIView *)view


パラメーター

view受信者のビュー階層に対してテストすべきビュー。

戻り値

受信者が、view の直接または遠いサブビューである場合または view が受信者自体である場合には YES、それ以外の場合は NO


利用可能

iOS 2.0 以降で利用可能。





サイズ変更動作の構成


autoresizingMask プロパティ


そのスーパービューの境界が変更したとき、受信者がそれ自体のサイズを変更する方法を決定する整数のビットマスク。


宣言

<< SWIFT >>

var autoresizingMask: UIViewAutoresizing

<< OBJECTIVE-C >>
@property(nonatomic) UIViewAutoresizing autoresizingMask


議論

ビューの境界が変更されると、そのビューは各サブビューの自動サイズ変更マスクに従ってそのサブビューのサイズを自動的に変更します。C のビット単位の OR 演算子を使用して UIViewAutoresizing で説明した定数を組み合わせて、このマスクの値を指定して下さい。これらの定数を組み合わせて、ビューの寸法がスーパービューに比べて大きくなったり小さくなったりするかを指定できます。このプロパティのデフォルト値は、ビューが全くサイズ変更されるべきではないことを示す UIViewAutoresizingNone です。


同じ軸に沿って、複数のオプションが設定されている場合は、デフォルトの動作は、柔軟な部分の間にサイズに違いを比例して分配することです。他の柔軟な部分に対して柔軟な部分がより大きければ、より成長する可能性があります。たとえば、このプロパティが UIViewAutoresizingFlexibleWidthUIViewAutoresizingFlexibleRightMargin 定数を含んでいるとすると、 UIViewAutoresizingFlexibleLeftMargin を含んでおらず、このようにビューの左余白の幅は固定されており、ビューの幅と右の余白が変更する可能性があることを示しています。このように、ビューはそのスーパービューの左側に固定表示され、ビューの幅とビューの増加の右側にあるギャップの両方は増加します。


自動サイズ変更動作が、あなたのビューのために必要な正確なレイアウトを提供していない場合は、カスタムコンテナビューを使用し、より正確にあなたのサブビューを配置するために、その layoutSubviews メソッドをオーバーライドできます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

autoresizesSubviews




autoresizesSubviews プロパティ


その境界が変更する場合は、受信者が自動的にそのサブビューのサイズを変更するかどうかを決定するブール値。


宣言

<< SWIFT >>

var autoresizesSubviews: Bool

<< OBJECTIVE-C >>
@property(nonatomic) BOOL autoresizesSubviews


議論

YES に設定すると、受信者は、その境界が変更する時、そのサブビューのサイズを調整します。デフォルト値は YES です。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

autoresizingMask




contentMode プロパティ


その境界が変更されたときにビューがそのコンテンツをレイアウトする方法を決定するために使用するフラグ。


宣言

<< SWIFT >>

var contentMode: UIViewContentMode

<< OBJECTIVE-C >>
@property(nonatomic) UIViewContentMode contentMode


議論

このコンテンツモードは、ビューの境界が変更されたときに、ビューのレイヤのキャッシュされたビットマップを調整する方法を指定します。このプロパティは、多くの場合、contentStretch プロパティに通常関連して、サイズ変更可能なコントロールを実現するために使用されます。ビューの内容を毎回再描画する代わりに、(歪みの有無にかかわらずどちらか) 内容をスケールまたはビュー上の特定の場所にそれらを固定することを指定するために、このプロパティを使用できます。



注意: 常に setNeedsDisplay または setNeedsDisplayInRect: メソッドを呼び出すことによって再描画されるビューの内容を強制できます。


このプロパティに割り当てできる値の一覧については、UIViewContentMode を参照してください。このプロパティのデフォルト値は UIViewContentModeScaleToFill です。


利用可能

iOS 2.0 以降で利用可能。





contentStretch
(iOS 6.0) プロパティ


ビューの伸縮できる領域と伸縮できない領域を定義する長方形。


<< OBJECTIVE-C >>

@property(nonatomic) CGRect contentStretch


議論

ビューのサイズが変更されたとき、ビューのコンテンツが、その境界を満たすように進展される方法を制御するには、このプロパティを使用して下さい。コンテンツを進展するのはしばしばビューのサイズ変更をアニメーション化するために使用されています。例えば、ボタンやその他のコントロールは、コントロールの中央部分の進展や利用可能なスペースを埋めるのを可能にしながら、鮮明な境界線を維持するために進展を使用しています。



注意: 画像ベースのコンテンツを伸展するためには、このプロパティを設定する代わりに、伸縮性のイメージで UIImageView オブジェクトを使用するのが簡単です。UIImagestretchableImageWithLeftCapWidth:topCapHeight: メソッドを使用して伸展性のある画像を作成できます。


この長方形で指定した値は 0.0 から 1.0 の範囲に正規化されていなければなりません。これらの値は、その後適切なピクセル値を得るためにビューのコンテンツのサイズにスケーリングされます。この長方形のデフォルト値は、原点 (0.0、0.0)(1.0、1.0) のサイズを有しています。これは、その伸展可能部分が全体の内容を取り囲む長方形を反映しています。


利用可能

iOS 3.0 以降で利用可能。

iOS 6.0 で旧式となる。





- sizeThatFits:


指定したサイズに丁度よく合ったサイズを計算し、返すようにビューを要求します。


宣言

<< SWIFT >>

func sizeThatFits(_ size: CGSize) -> CGSize

<< OBJECTIVE-C >>
- (CGSize)sizeThatFits:(CGSize)size


パラメーター

sizeビューは、その丁度よく合うサイズを計算する必要があるサイズ。

戻り値

受信者のサブビューに合う新しいサイズ。


議論

このメソッドのデフォルトの実装は、ビューの既存のサイズを返します。サブクラスは、全てのサブビューの望みのレイアウトに基づいて、カスタム値を返すようにこのメソッドをオーバーライドできます。例えば、UISwitch オブジェクトはスイッチビューの標準的なサイズを表す固定サイズ値を返し、UIImageView オブジェクトは、現在表示している画像のサイズを返します。


このメソッドは、受信者のサイズは変更しません。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– sizeToFit

frame

bounds




– sizeToFit


それが丁度サブビューを囲むように、受信者のビューのサイズを変更し、移動します。


宣言

<< SWIFT >>

func sizeToFit()

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


議論

空間の最も適切な量を使用するように、現在のビューのサイズを変更する場合は、このメソッドを呼び出して下さい。特定の UIKit ビューは、独自の内部のニーズに応じてそれら自身のサイズを変更します。いくつかの場合、ビューがスーパービューを持っていない場合、画面の境界に、それ自体のサイズに合わせます。このように、与えられたビューにその親ビューにサイズを合わせたい場合は、このメソッドを呼び出す前に、親ビューにそれを追加する必要があります。


このメソッドをオーバーライドすべきではありません。あなたのビューのデフォルトのサイズ情報を変更したい時は、sizeThatFits を代わりに、オーバーライドして下さい。そのメソッドは、必要な計算を実行し、このメソッドに、それらを返し、変更を行います。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

- sizeThatFits:




サブビューのレイアウト


- layoutSubviews


サブビューをレイアウトします。


宣言

<< SWIFT >>

func layoutSubviews()

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


議論

このメソッドのデフォルトの実装は、iOS 5.1 以前では何もしません。そうでない場合、デフォルトの実装では、全てのサブビューのサイズと位置を決定するために設定した、任意の制約を使用します。


それらのサブビューの、より正確なレイアウトを実行するために必要なサブクラスは、このメソッドをオーバーライドできます。サブビューの自動サイズ変更および制約ベースの動作は、望みの動作を提供しない場合にのみ、あなたは、このメソッドをオーバーライドする必要があります。直接あなたのサブビューのフレームの長方形を設定するには、あなたの実装を使用できます。


このメソッドを直接呼び出すべきではありません。レイアウトの更新を強制する場合は、次の描画更新を行う前にそうする代わりに、setNeedsLayout メソッドを呼び出して下さい。すぐにあなたのビューのレイアウトを更新したい場合は、layoutIfNeeded メソッドを呼び出して下さい。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– setNeedsLayout
– layoutIfNeeded




– setNeedsLayout


受信者の現在のレイアウトを無効にして、次の更新サイクル中にレイアウトの更新をトリガします。


宣言

<< SWIFT >>

func setNeedsLayout()

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


議論

ビューのサブビューのレイアウトを調整したいときに、アプリケーションのメインスレッドでこのメソッドを呼び出して下さい。このメソッドは、リクエストのメモを作成し、すぐに返します。このメソッドは、即時更新を強制しませんが、代わりに次の更新サイクルを待機するので、それらの全てのビューが更新される前に、複数のビューのレイアウトを無効にするために使用できます。この動作は、通常はパフォーマンスに優れている、1つの更新サイクルで、レイアウト更新のすべてを統合することができます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– layoutIfNeeded
– layoutSubviews




– layoutIfNeeded


すぐにサブビューをレイアウトします。


宣言

<< SWIFT >>

func layoutIfNeeded()

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


議論

描画する前にサブビューのレイアウトを強制するために、このメソッドを使用して下さい。ルートビューとしてメッセージを受信したビューを使用して、このメソッドは、ルートから始まるビューサブツリーをレイアウトします。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– setNeedsLayout
– layoutSubviews




+ requiresConstraintBasedLayout


受信者が、制約ベースのレイアウトシステムに依存しているかどうかを示すブール値。


宣言

<< SWIFT >>

class func requiresConstraintBasedLayout() -> Bool

<< OBJECTIVE-C >>
+ (BOOL)requiresConstraintBasedLayout


戻り値

正常に機能するように制約ベースのレイアウトを使用して、ウィンドウ内にビューがなければない場合 YES、そうでない場合、NO


議論

カスタムビューは、それらが自動サイズ変更を使用して正しくレイアウトすることができない場合は YES を返して、これをオーバーライドする必要があります。


利用可能

iOS 6.0 以降で利用可能。





translatesAutoresizingMaskIntoConstraints プロパティ


ビューの自動サイズ変更マスクが自動レイアウトの制約に翻訳されているかどうかを決定するブール値。


宣言

<< SWIFT >>

var translatesAutoresizingMaskIntoConstraints: Bool

<< OBJECTIVE-C >>
@property(nonatomic) BOOL translatesAutoresizingMaskIntoConstraints


議論

このプロパティの値が YES の場合、システムは、ビューの自動サイズ変更マスクで指定された動作を複製する制約のセットを作成します。これはまた、あなたが自動レイアウト内の静的、フレームベースのレイアウトを作成することを可能にし、ビューの frameboundscenter プロパティを使用してビューのサイズと位置を変更できます。


自動サイズ変更マスク制約が完全にビューのサイズと位置を指定することに注意してください。したがって、競合を導入することなく、このサイズや位置を変更するための追加の制約を追加することはできません。あなたが動的にビューのサイズと位置を計算するために、自動レイアウトを使用する場合は、このプロパティを NO に設定し、その後ビューの制約の曖昧でない、競合しないセットを提供しなければなりません。


デフォルトでは、このプロパティは、プログラムで作成した全てのビューで YES に設定されています。Interface Builder でビューを追加すると、システムは自動的に、このプロパティを NO に設定します。


利用可能

iOS 6.0 以降で利用可能。





レイアウトのアンカーを使用して制約の作成


bottomAnchor プロパティ


ビューのフレームの下端を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var bottomAnchor: NSLayoutYAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutYAxisAnchor *bottomAnchor


議論

ビューの下端で制約を作成するには、このアンカーを使用してください。他の NSLayoutYAxisAnchor アンカーとだけ、このアンカーを組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





centerXAnchor プロパティ


ビューのフレームの水平方向の中心を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var centerXAnchor: NSLayoutXAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutXAxisAnchor *centerXAnchor


議論

ビューの水平方向の中心で制約を作成するには、このアンカーを使用してください。他の NSLayoutXAxisAnchor アンカーとだけ、このアンカーを組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





centerYAnchor プロパティ


ビューのフレームの垂直方向の中心を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var centerYAnchor: NSLayoutYAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutYAxisAnchor *centerYAnchor


議論

ビューの垂直方向の中心で制約を作成するには、このアンカーを使用してください。他の NSLayoutYAxisAnchor アンカーとだけ、このアンカーを組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





firstBaselineAnchor プロパティ


ビュー内のテキストの一番上の行のベースラインを表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var firstBaselineAnchor: NSLayoutYAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutYAxisAnchor *firstBaselineAnchor


議論

複数行のテキストから成るビューでは、このアンカーは、テキストの一番上の行のベースラインを表します。このベースラインに制約を作成するには、このアンカーを使用してください。他の NSLayoutYAxisAnchor アンカーとだけ、このアンカーを組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





heightAnchor プロパティ


ビューのフレームの高さを表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var heightAnchor: NSLayoutDimension { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutDimension *heightAnchor


議論

ビューの高さで制約を作成するには、このアンカーを使用してください。他の NSLayoutDimension アンカーとだけ、このアンカーを組み合わせることができます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





lastBaselineAnchor プロパティ


ビュー内のテキストの一番下の行のベースラインを表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var lastBaselineAnchor: NSLayoutYAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutYAxisAnchor *lastBaselineAnchor


議論

複数行のテキストから成るビューでは、このアンカーは、テキストの一番下の行のベースラインを表します。このベースラインに制約を作成するには、このアンカーを使用してください。他の NSLayoutYAxisAnchor アンカーとだけ、このアンカーを組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





leadingAnchor プロパティ


ビューのフレームの先端を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var leadingAnchor: NSLayoutXAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutXAxisAnchor *leadingAnchor


議論

ビューの先端との制約を作成するには、このアンカーを使用してください。NSLayoutXAxisAnchor アンカーのサブセットとのみ、このアンカーを組み合わせられます。別の leadingAnchortrailingAnchor、または centerXAnchorleadingAnchor を組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





leftAnchor プロパティ


ビューのフレームの左端を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var leftAnchor: NSLayoutXAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutXAxisAnchor *leftAnchor


議論

ビューの左端との制約を作成するには、このアンカーを使用してください。NSLayoutXAxisAnchor アンカーのサブセットとのみ、このアンカーを組み合わせられます。別の leftAnchorrightAnchor、または centerXAnchorleftAnchor を組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





rightAnchor プロパティ


ビューのフレームの右端を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var rightAnchor: NSLayoutXAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutXAxisAnchor *rightAnchor


議論

ビューの右端との制約を作成するには、このアンカーを使用してください。NSLayoutXAxisAnchor アンカーのサブセットとだけ、このアンカーを組み合わせられます。別の rightAnchorleftAnchor、または centerXAnchorrightAnchor を組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





topAnchor プロパティ


ビューのフレームの上端を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var topAnchor: NSLayoutYAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutYAxisAnchor *topAnchor


議論

ビューの上端との制約を作成するには、このアンカーを使用してください。他の NSLayoutXAxisAnchor アンカーとだけ、このアンカーを組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





trailingAnchor プロパティ


ビューのフレームの後端を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var trailingAnchor: NSLayoutXAxisAnchor { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutXAxisAnchor *trailingAnchor


議論

ビューの後端との制約を作成するには、このアンカーを使用してください。NSLayoutXAxisAnchor アンカーのサブセットとだけ、このアンカーを組み合わせられます。別の trailingAnchorleadingAnchor、または centerXAnchortrailingAnchor を組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





widthAnchor プロパティ


ビューのフレームの幅を表すレイアウトアンカー。(読み取り専用)


宣言

<< SWIFT >>

var widthAnchor: NSLayoutDimension { get }

<< OBJECTIVE-C >>
@property(readonly, strong) NSLayoutDimension *widthAnchor


議論

ビューの幅との制約を作成するには、このアンカーを使用してください。他の NSLayoutDimension アンカーとだけ、このアンカーを組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。


利用可能

iOS 9.0 以降で利用可能。





ビューの制約の管理


constraints プロパティ


ビューに保持されている制約。(読み取り専用)


宣言

<< SWIFT >>

var constraints: [NSLayoutConstraint] { get }

<< OBJECTIVE-C >>
@property(nonatomic, readonly) NSArray <__kindof NSLayoutConstraint *> *constraints


利用可能

iOS 6.0 以降で利用可能。





- addConstraint:


受信しているビューまたはそのサブビューのレイアウト上に制約を追加します。


宣言

<< SWIFT >>

func addConstraint(_ constraint: NSLayoutConstraint)

<< OBJECTIVE-C >>
- (void)addConstraint:(NSLayoutConstraint *)constraint


パラメーター

constraintビューに追加されるべき制約。制約はビューそれ自体またはそのサブビューを参照することだけができます。

議論

制約は、受信しているビューの範囲内にあるビューのみを含む必要があります。具体的には、含まれる全てのビューは、受信しているビューそれ自体、あるいは受信しているビューのサブビューのいずれかでなければなりません。ビューに追加された制約は、そのビューによって保持されると言います。制約を評価する際に使用される座標系は、制約を保持しているビューの座標系です。


iOS 8.0 以降で開発する場合は、addConstraint: メソッドを直接呼び出す代わりに、制約の active プロパティを YES に設定します。active プロパティは、正しいビューから制約を自動的に追加し、削除します。


利用可能

iOS 6.0 以降で利用可能。





- addConstraints:


受信しているビューまたはそのサブビューのレイアウトに複数の制約を追加します。


宣言

<< SWIFT >>

func addConstraints(_ constraints: [NSLayoutConstraint])

<< OBJECTIVE-C >>
- (void)addConstraints:(NSArray<__kindofNSLayoutConstraint *> *)constraints


パラメーター

constraintsビューに追加されるべき制約の配列。すべての制約はビュー自体またはそのサブビューを参照することだけができます。

議論

すべての制約は、受信しているビューの範囲内にあるビューのみを含める必要があります。具体的には、含まれる全てのビューは、受信しているビューそれ自体、あるいは受信しているビューのサブビューのいずれかでなければなりません。ビューに追加された制約は、そのビューによって保持されると言います。各制約を評価する際に使用される座標系は、制約を保持しているビューの座標系です。


iOS 8.0 以降で開発する場合、addConstraints: メソッドを直接呼び出す代わりに、NSLayoutConstraint クラスの activateConstraints: メソッドを使用して下さい。activateConstraints: メソッドは、自動的に正しいビューに制約を追加します。


利用可能

iOS 6.0 以降で利用可能。





- removeConstraint:


ビューから指定された制約を削除します。


宣言

<< SWIFT >>

func removeConstraint(_ constraint: NSLayoutConstraint)

<< OBJECTIVE-C >>
- (void)removeConstraint:(NSLayoutConstraint *)constraint


パラメーター

constraint削除すべき制約。ビューによって保持されていない制約を削除しても効果はありません。

議論

iOS 8.0 以降で開発する時は、removeConstraint: メソッドを直接呼び出す代わりに、制約の active プロパティを NO に設定して下さい。active プロパティは、正しいビューからの制約を自動的に追加し、削除します。


利用可能

iOS 6.0 以降で利用可能。





- removeConstraints:


ビューから指定された複数の制約を削除します。


宣言

<< SWIFT >>

func removeConstraints(_ constraints: [NSLayoutConstraint])

<< OBJECTIVE-C >>
- (void)removeConstraints:(NSArray<__kindofNSLayoutConstraint *> *)constraints


パラメーター

constraints削除すべき複数の制約。

議論

iOS 8.0 以降で開発する時は、removeConstraint: メソッドを直接呼び出す代わりに、NSLayoutConstraint クラスの deactivateConstraints: メソッドを使用して下さい。deactivateConstraints: メソッドは、正しいビューからの制約を自動的に削除します。


利用可能

iOS 6.0 以降で利用可能。





レイアウトガイドでの作業


- addLayoutGuide:


ビューに、指定されたレイアウトガイドを追加します。


宣言

<< SWIFT >>

func addLayoutGuide(_ layoutGuide: UILayoutGuide)

<< OBJECTIVE-C >>
- (void)addLayoutGuide:(UILayoutGuide *)layoutGuide


パラメーター

layoutGuide追加されるべきレイアウトガイド。

議論

このメソッドは、ビューの layoutGuides 配列の最後に、指定されたレイアウトガイドを追加します。また、ガイドの owningView プロパティにビューを割り当てます。各ガイドは、一つだけ所有ビューを持てます。


ガイドがビューに追加された後、そのビューの階層との自動レイアウトの制約に参加できます。


利用可能

iOS 9.0 以降で利用可能。





layoutGuides プロパティ


このビューが所有するレイアウトガイドオブジェクトの配列。(読み取り専用)


宣言

<< SWIFT >>

var layoutGuides: [UILayoutGuide] { get }

<< OBJECTIVE-C >>
@property(nonatomic, readonly, copy) NSArray <__kindof UILayoutGuide *> *layoutGuides


利用可能

iOS 9.0 以降で利用可能。





layoutMarginsGuide プロパティ


ビューの余白を表すレイアウトガイド。(読み取り専用)


宣言

<< SWIFT >>

var layoutMarginsGuide: UILayoutGuide { get }

<< OBJECTIVE-C >>
@property(readonly, strong) UILayoutGuide *layoutMarginsGuide


議論

ビューの余白で制約を作成するには、このレイアウトガイドのアンカーを使用してください。


利用可能

iOS 9.0 以降で利用可能。


以下も見よ

layoutMargins




readableContentGuide プロパティ


ビュー内で読み取り可能な幅の領域を表すレイアウトガイド。(読み取り専用)


宣言

<< SWIFT >>

var readableContentGuide: UILayoutGuide { get }

<< OBJECTIVE-C >>
@property(nonatomic, readonly, strong) UILayoutGuide *readableContentGuide


議論

このレイアウトガイドは、ラインを追跡するために、ユーザーに自分の頭を移動するのを強制することなく読み取ることができる領域を定義します。読み取り可能なコンテンツ領域には、以下の規則に従います。


  1. 読み取り可能なコンテンツガイドは、決してビューのレイアウトマージンガイドを越えて延びません。

  2. 読み取り可能なコンテンツガイドは、レイアウトマージンガイド内側の垂直の中央に配置されます。

  3. 読み取り可能なコンテンツガイドの幅は、現在の動的テキストサイズで定義された読み取り可能な幅よりも小さいかに等しいです。

テキストの単一の列をレイアウトするために読み取り可能なコンテンツガイドを使用してください。複数の列をレイアウトしている場合、あなたの列に最適な幅を決定するために、ガイドの幅を使用できます。


利用可能

iOS 9.0 以降で利用可能。





- removeLayoutGuide:


ビューから、指定されたレイアウトガイドを削除します。


宣言

<< SWIFT >>

func removeLayoutGuide(_ layoutGuide: UILayoutGuide)

<< OBJECTIVE-C >>
- (void)removeLayoutGuide:(UILayoutGuide *)layoutGuide


パラメーター

layoutGuide削除されるべきレイアウトガイド。

議論

このメソッドは、ビューの layoutGuides 配列からレイアウトガイドを削除し、ガイドの owningView プロパティを nil に設定します。また、レイアウトガイドへの全ての制約を削除します。


ビュー階層内のビューに追加されない限り、レイアウトガイドは、自動レイアウトの制約に参加できません。


利用可能

iOS 9.0 以降で利用可能。





自動レイアウトでの測定


- systemLayoutSizeFittingSize:


それが保持している制約を満たすビューのサイズを返します。


宣言

<< SWIFT >>

func systemLayoutSizeFittingSize(_ targetSize: CGSize) -> CGSize

<< OBJECTIVE-C >>
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize


パラメーター

targetSize制約を満たす最小または最大の可能サイズにしたいかどうかを示します。受け入れられる値については、Fitting Size を参照してください。

戻り値

保持している制約を満たすビューのサイズ。


議論

保持している全ての制約とそのサブビューの制約を考慮した、ビューの最適なサイズを決定します。


利用可能

iOS 6.0 以降で利用可能。





- systemLayoutSizeFittingSize:withHorizontalFittingPriority
:verticalFittingPriority:


保持している制約を満たすビューのサイズを返します。


宣言

<< SWIFT >>

func systemLayoutSizeFittingSize(_ targetSize: CGSize,
   withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority,
         verticalFittingPriority verticalFittingPriority: UILayoutPriority) -> CGSize

<< OBJECTIVE-C >>
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize
        withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority
              verticalFittingPriority:(UILayoutPriority)verticalFittingPriority


パラメーター

TargetSize制約を満たす最小または最大の可能サイズにしたいかどうかを示します。受け入れられる値については、Fitting Size を参照してください。
horizontalFittingPriority水平制約の優先性。
verticalFittingPriority垂直制約の優先性。

戻り値

保持している制約を満たすビューのサイズ。


議論

保持している全ての制約とそのサブビューの制約を考慮した、ビューの最適なサイズを決定します。


利用可能

iOS 8.0 以降で利用可能。





- intrinsicContentSize


ビューそれ自体のプロパティのみを考慮して、受信しているビューの自然なサイズを返します。


宣言

<< SWIFT >>

func intrinsicContentSize() -> CGSize

<< OBJECTIVE-C >>
- (CGSize)intrinsicContentSize


戻り値

その固有のプロパティに基づいて、受信しているビューの自然なサイズを示すサイズ。


議論

カスタムビューは、典型的には、それらのレイアウトシステムが認識していないものを表示するコンテンツを持っています。このメソッドをオーバーライドすると、カスタムビューに、そのコンテンツに基づきたいと思う、レイアウトシステムのサイズと通信することを可能にします。例えば、変更された高さに基づいてレイアウトシステムに、変更された幅を動的に通信する方法はありませんので、この固有のサイズは、コンテンツフレームに独立していなければなりません。


カスタムビューが、与えられた寸法に本質的なサイズを持っていない場合は、その寸法の UIViewNoIntrinsicMetric を返せます。


利用可能

iOS 6.0 以降で利用可能。





- invalidateIntrinsicContentSize


ビュー固有のコンテンツのサイズを無効にします。


宣言

<< SWIFT >>

func invalidateIntrinsicContentSize()

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


議論

何かがその固有のコンテンツサイズを無効化するカスタムビューで変更されたときにこれを呼び出して下さい。これは、次のレイアウトパスでアカウントに新しい固有コンテンツのサイズを取る事を制約ベースのレイアウトシステムに可能にします。


利用可能

iOS 6.0 以降で利用可能。





- contentCompressionResistancePriorityForAxis:


ビューがその固有のサイズよりも小さくされる事を抵抗する優先性を返します。


宣言

<< SWIFT >>

func contentCompressionResistancePriorityForAxis(_ axis: UILayoutConstraintAxis) -> UILayoutPriority

<< OBJECTIVE-C >>
- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis


パラメーター

axis低下するおそれのあるビューの軸。

戻り値

指定された軸上でその固有のサイズから圧縮される事にビューが抵抗すべき優先性。


議論

それらが固有のサイズよりも小さくなるように必要とする制約に遭遇しているビューの最良のレイアウトを決定する際に制約ベースのレイアウトシステムは、これらの優先性を使用します。


サブクラスは、このメソッドをオーバーライドするべきではありません。代わりに、カスタムビューは、一般的に UILayoutPriorityDefaultLow または UILayoutPriorityDefaultHigh の作成時にそれらのコンテンツのデフォルト値を設定する必要があります。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

– setContentCompressionResistancePriority:forAxis:




– setContentCompressionResistancePriority:forAxis:


ビューがその固有のサイズよりも小さくされる事を抵抗する優先性をを設定します。


宣言

<< SWIFT >>

func setContentCompressionResistancePriority(_ priority: UILayoutPriority,
                                     forAxis axis: UILayoutConstraintAxis)

<< OBJECTIVE-C >>
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority
                                        forAxis:(UILayoutConstraintAxis)axis


パラメーター

priority新しい優先性。
axis圧縮抵抗の優先性が設定される必要のある軸。

議論

カスタムビューは UILayoutPriorityDefaultLow または UILayoutPriorityDefaultHigh で典型的に、その内容に基づいて、作成時に両方の向きのデフォルト値を設定する必要があります。ユーザインタフェースを作成する時は、、インターフェースで使われるビューの自然な優先度よりも全体的なレイアウト設計が異なるトレードオフを必要とする場合、レイアウト設計者は、特定のビューで、これらの優先性を変更できます。


サブクラスは、このメソッドをオーバーライドするべきではありません。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

– contentCompressionResistancePriorityForAxis:




- contentHuggingPriorityForAxis:


ビューがその固有のサイズよりも大きくされる事を抵抗する優先性を返します。


宣言

<< SWIFT >>

func contentHuggingPriorityForAxis(_ axis: UILayoutConstraintAxis) -> UILayoutPriority

<< OBJECTIVE-C >>
- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis


パラメーター

axis拡大する可能性があるビューの軸。

戻り値

指定された軸上でその固有のサイズから拡大される事にビューは抵抗するべき優先性。


議論

それらの固有の大きさよりも大きくなるように、それらに必要とする制約に遭遇しているビューの最良のレイアウトを決定する際に制約ベースのレイアウトシステムは、これらの優先性を使用します。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

– setContentHuggingPriority:forAxis:




– setContentHuggingPriority:forAxis:


ビューがその固有のサイズよりも大きくなる事に抵抗する優先性を設定します。


宣言

<< SWIFT >>

func setContentHuggingPriority(_ priority: UILayoutPriority,
                       forAxis axis: UILayoutConstraintAxis)

<< OBJECTIVE-C >>
- (void)setContentHuggingPriority:(UILayoutPriority)priority
                          forAxis:(UILayoutConstraintAxis)axis


パラメーター

priority新しい優先性。
axisコンテンツが抱えている優先性が設定されるべき軸。

議論

カスタムビューは、UILayoutPriorityDefaultLow または UILayoutPriorityDefaultHigh に典型的な、その内容に基づいて、作成時に両方の向きのデフォルト値を設定する必要があります。ユーザインタフェースを作成する時、インターフェースで使用されているビューの自然な優先性とは異なるトレードオフを必要とする場合、レイアウト設計者は、全体的なレイアウト設計する時、特定のビューのため、これらの優先性を変更できます。


サブクラスは、このメソッドをオーバーライドするべきではありません。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

– contentHuggingPriorityForAxis:




自動レイアウトで整列ビュー


- alignmentRectForFrame:


与えられたフレーム用のビューの整列用の長方形を返します。


宣言

<< SWIFT >>

func alignmentRectForFrame(_ frame: CGRect) -> CGRect

<< OBJECTIVE-C >>
- (CGRect)alignmentRectForFrame:(CGRect)frame


パラメーター

frame対応する整列用長方形が望まれているフレーム。

戻り値

指定されたフレーム用の整列用長方形。


議論

そのフレームよりもむしろ、制約ベースのレイアウトシステムは、ビューを整列するのに整列用長方形を使用します。カスタムビューは、それらが、影や反射のような、その内容の周りに描画する必要がある任意の装飾を含むフレームをまだ持ちながら、そのコンテンツの場所に基づいて整列させることを可能にします。


デフォルトの実装では、ビューの alignmentRectInsets によって変更される、ビューのフレームを返します。ほとんどのカスタムビューは、そのフレーム内でコンテンツの場所を指定する alignmentRectInsets をオーバーライドできます。任意の変換を必要とするカスタムビューは alignmentRectForFrame: をオーバーライドでき、frameForAlignmentRect: に、そのコンテンツの場所を記述させます。これらの2つのメソッドは、常に互いの逆でなければなりません。


利用可能

iOS 6.0 以降で利用可能。





- frameForAlignmentRect:


与えられ整列用長方形のビューのフレームを返します。


宣言

<< SWIFT >>

func frameForAlignmentRect(_ alignmentRect: CGRect) -> CGRect

<< OBJECTIVE-C >>
- (CGRect)frameForAlignmentRect:(CGRect)alignmentRect


パラメーター

alignmentRectその対応するフレームが望まれている、整列用長方形。

戻り値

指定された整列用長方形のフレーム。


議論

そのフレームよりもむしろ、制約ベースのレイアウトシステムは、ビューを整列するのに整列用長方形を使用します。カスタムビューは、それらが、影や反射のような、その内容の周りに描画する必要がある任意の装飾を含むフレームをまだ持ちながら、そのコンテンツの場所に基づいて整列させることを可能にします。


デフォルトの実装では、ビューの alignmentRectInsets によって変更される、alignmentRect を返します。ほとんどのカスタムビューは、そのフレーム内でコンテンツの場所を指定する alignmentRectInsets をオーバーライドできます。任意の変換を必要とするカスタムビューは alignmentRectForFrame: をオーバーライドでき、frameForAlignmentRect: に、そのコンテンツの場所を記述させます。これらの2つのメソッドは、常に互いの逆でなければなりません。


利用可能

iOS 6.0 以降で利用可能。





- alignmentRectInsets


その整列用長方形を定義する、ビューのフレームから差し込まれたものを返します。


宣言

<< SWIFT >>

func alignmentRectInsets() -> UIEdgeInsets

<< OBJECTIVE-C >>
- (UIEdgeInsets)alignmentRectInsets


戻り値

その整列用長方形を定義する、ビューのフレームから差し込まれたもの。


議論

このメソッドのデフォルトの実装は、ゼロの値を持つ NSEdgeInsets 構造体を返します。その内容の周りに装飾を描くカスタムビューは、装飾を除いたコンテンツの縁で、整列された差し込み物を返すために、このメソッドをオーバーライドする必要があります。これは、ちょうどそれらのフレームというよりも、その内容に基づいてビューを配置することができるように制約ベースのレイアウトシステムに許可します。


そのコンテンツの場所が差し込まれた物の簡単なセットでは表現できないカスタムビューは alignmentRectForFrame: をオーバーライドする必要があり、frameForAlignmentRect: で整列用長方形とフレームとの間のカスタム変換について説明します。


利用可能

iOS 6.0 以降で利用可能。





- viewForBaselineLayout

(iOS 9.0)


ベースラインの制約を満たすために使用されるビューを返します。


旧式の文

代わりに viewForFirstBaselineLayoutviewForLastBaselineLayout プロパティを使用して下さい。


宣言

<< SWIFT >>

func viewForBaselineLayout() -> UIView

<< OBJECTIVE-C >>
- (UIView *)viewForBaselineLayout


戻り値

制約システムが、ベースラインの制約を満たすために使用すべきビュー。


議論

ビューの NSLayoutAttributeBaseline 属性に制約を加えると、自動レイアウトは、このメソッドによって返されるビューのベースラインを使用します。そのビューがベースラインを持っていない場合は、自動レイアウトは、ビューの下端を使用します。


(例えば、UILabel またはスクロールしない UITextView で) テキストベースのサブビューを返すためには、このメソッドをオーバーライドして下さい。このメソッドをオーバーライドする場合は、返されたビューは、受信者のサブビューでなければなりません。デフォルトの実装では、受信するビューを返します。


利用可能

iOS 6.0 以降で利用可能。

iOS 9.0 で旧式となる。





viewForFirstBaselineLayout プロパティ


最初のベースラインの制約を満たすために使用されるビューを返します。(読み取り専用)


宣言

<< SWIFT >>

var viewForFirstBaselineLayout: UIView { get }

<< OBJECTIVE-C >>
@property(readonly, strong) UIView *viewForFirstBaselineLayout


議論

テキストの複数行のビューでは、最初のベースラインは、一番上の行のベースラインです。


ビューの NSLayoutAttributeFirstBaseline 属性に制約を加えると、自動レイアウトは、このメソッドによって返されるビューのベースラインを使用します。そのビューがベースラインを持っていない場合は、自動レイアウトは、ビューの上端を使用します。


(例えば、UILabel またはスクロールしない UITextView で) テキストベースのサブビューを返すためには、このプロパティをオーバーライドして下さい。返されるビューは、受信者のサブビューでなければなりません。デフォルトの実装は、viewForLastBaselineLayout に含まれる値を返します。



注意: 同じサブビューが、最初と最後のベースラインの両方に適している場合は、同じサブビューは、最初と最後のベースラインの両方に適している場合は、viewForLastBaselineLayout ゲッターメソッドをオーバーライドするだけの必要があります。


利用可能

iOS 9.0 以降で利用可能。





viewForBaselineLayout プロパティ


最後のベースラインの制約を満たすために使用されるビューを返します。(読み取り専用)


宣言

<< SWIFT >>

var viewForLastBaselineLayout: UIView { get }

<< OBJECTIVE-C >>
@property(readonly, strong) UIView *viewForLastBaselineLayout


議論

テキストの複数行のビューについては、最後のベースラインは、一番下の行のベースラインです。


ビューの NSLayoutAttributeLastBaseline 属性に制約を加えると、自動レイアウトは、このメソッドによって返されるビューのベースラインを使用します。そのビューがベースラインを持っていない場合は、自動レイアウトは、ビューの下端を使用します。


(例えば、UILabel またはスクロールしない UITextView で) テキストベースのサブビューを返すためには、このプロパティをオーバーライドして下さい。返されるビューは、受信者のサブビューでなければなりません。デフォルトの実装は、受信しているビューを返します。


利用可能

iOS 9.0 以降で利用可能。





自動レイアウトをトリガする


- needsUpdateConstraints


ビューの制約が更新する必要があるかどうかを決定するブール値。


宣言

<< SWIFT >>

func needsUpdateConstraints() -> Bool

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


戻り値

ビューの制約が更新を必要とする場合 YES、そうでない場合 NO


議論

制約ベースのレイアウトシステムは、その通常のレイアウトパスの一部としてビューの updateConstraints を呼び出す必要があるかどうかを決定するために、このメソッドの戻り値を使用します。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

– setNeedsUpdateConstraints





– setNeedsUpdateConstraints


ビューの制約は更新が必要かどうかを制御します。


宣言

<< SWIFT >>

func setNeedsUpdateConstraints()

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


議論

カスタムビューのプロパティが制約に影響を与えるように変更した場合、制約が将来のある時点で更新する必要があることを示すには、このメソッドを呼び出せます。その後、システムは、通常のレイアウトパスの一部として updateConstraints を呼び出します。バッチの制約変化への最適化ツールとしてこれを使用してください。それらが必要とされる直前にすべてを一度に制約を更新すると、複数の変更がレイアウトパスの間に、あなたのビューに加えられたときに、制約を不必要なに再計算しないことが保証されます。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

- needsUpdateConstraints





- updateConstraints


ビューの制約の更新。


宣言

<< SWIFT >>

func updateConstraints()

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


議論

制約への変更を最適化するには、このメソッドをオーバーライドして下さい。



注意: 影響する変更が発生した直後に制約を更新する方が常にクリーンで簡単です。例えば、ボタンタップに応じて制約を変更したい場合は、ボタンのアクションメソッドで直接その変更を行います。

ビューが多くの冗長な変更を生成しているときや、場所で制約を変更することが遅すぎる場合、このメソッドをオーバーライドするだけの必要があります。


変更をスケジュール化するには、ビューの setNeedsUpdateConstraints を呼び出します。その後、システムは、レイアウトが発生する前に updateConstraints の実装を呼び出します。これは、あなたのカスタムビューのプロパティが変更されていない場合、コンテンツに必要なすべての制約が所定の位置にあることを一度に確認できます。


あなたの実装は、可能な限り効率的でなければなりません。すべての制約を無効化せず、あなたが必要とするものを再度アクティブ化して下さい。代わりに、あなたのアプリが制約を追跡し、各更新パスの間に、それらを検証するいくつかの方法を持っている必要があります。変更が必要な項目だけを変更して下さい。各更新パスの間に、アプリの現在の状態用の適切な制約を持っていることを確認する必要があります。


実装の内部の setNeedsUpdateConstraints を呼び出さないでください。setNeedsUpdateConstraints を呼び出すと、別の更新パスをスケジュールし、フィードバックループを作成します。



重要: [super updateConstraints] を実装の最終ステップとして呼び出して下さい。


利用可能

iOS 6.0 以降で利用可能。





- updateConstraintsIfNeeded


受信しているビューとそのサブビューの制約を更新します。


宣言

<< SWIFT >>

func updateConstraintsIfNeeded()

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


議論

新しいレイアウトパスがビューのためにトリガーされるたびに、システムは、ビューの全ての制約とそのサブビューが、現在のビュー階層とその制約からの情報で更新されていることを確認するには、このメソッドを呼び出して下さい。このメソッドは、システムによって自動的に呼び出されますが、最新の制約を検討する必要がある場合は、手動で呼び出せます。


サブクラスは、このメソッドをオーバーライドするべきではありません。


利用可能

iOS 6.0 以降で利用可能。





自動レイアウトのデバッグ


制約ベースのレイアウトのデバッグの詳細については、自動レイアウトガイド を参照してください。


- constraintsAffectingLayoutForAxis:


与えられた軸のビューのレイアウトに影響を与える制約を返します。


宣言

<< SWIFT >>

func constraintsAffectingLayoutForAxis(_ axis: UILayoutConstraintAxis) -> [NSLayoutConstraint]

<< OBJECTIVE-C >>
- (NSArray&glt__kindofNSLayoutConstraint *> *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis


パラメーター

axis制約が発見されるべき軸。

戻り値

指定された軸のビューのレイアウトに影響を与える制約。


議論

制約の返されたセットは、明示的にビューをすべて含んでいないのことがあります。暗黙的にビューの位置に影響を与える制約も含まれているかもしれません。これはデバッグのため良い出発点を提供していますが、制約の返されたセットは、与えられた向きのビューのレイアウトに影響を与える制約のすべてを含んでいる保証はありません。


このメソッドは、制約ベースのレイアウトをデバッグするためにのみ使用されるべきです。アプリケーションは、その操作の一部として、このメソッドへの呼び出しが含まれてはなりません。


利用可能

iOS 6.0 以降で利用可能。





- hasAmbiguousLayout


ビューのレイアウトに影響を与える制約が不完全にビューの位置を指定するかどうかを決定するブール値。


宣言

<< SWIFT >>

func hasAmbiguousLayout() -> Bool

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


戻り値

ビューの位置が不完全に指定されている場合 YES、そうでなければ NO


議論

このメソッドは、ビューが、ビューの制約も満足させることができる、他のフレームがあるかどうかを確認します。これは高価な操作であり、通常のレイアウト処理の一部として実行されませんが、与えられたインタフェースが一貫性のあるレイアウトを確実にするために、十分な数の制約で指定されているかどうかをデバッグする際に役立ちます。


このメソッドは、制約ベースのレイアウトをデバッグするためにのみ使用されるべきです。アプリケーションは、その操作の一部として、このメソッドへの呼び出しが含まれてはなりません。


利用可能

iOS 6.0 以降で利用可能。





- exerciseAmbiguityInLayout


別の有効な値の間の曖昧なレイアウトでビューのフレームをランダムに変更します。


宣言

<< SWIFT >>

func exerciseAmbiguityInLayout()

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


議論

このメソッドは、別の有効な値の間の曖昧なレイアウトでビューのフレームをランダムに変更し、インターフェイス内を移動するビューを引き起こします。ビューの位置を完全に指定するために、レイアウトに追加する必要がどのような制約を見分ける事を、開発者に可能にすることが容易になり、有効なフレームがどのような物か視覚的に識別できます。


このメソッドは、制約ベースのレイアウトをデバッグするためにのみ使用されるべきです。アプリケーションは、その操作の一部として、このメソッドへの呼び出しが含まれてはなりません。


利用可能

iOS 6.0 以降で利用可能。





ユーザーインターフェイスの方向の管理


semanticContentAttribute プロパティ


ビューの内容の意味の説明は、左から右へと右から左へのレイアウトを切り替えると、ビューを反転する必要があるかどうかを判断します。


宣言

<< SWIFT >>

var semanticContentAttribute: UISemanticContentAttribute

<< OBJECTIVE-C >>
@property(nonatomic) UISemanticContentAttribute semanticContentAttribute


議論

左から右へと右から左へのレイアウトを切り替えると、いくつかのビューは反転しないかもしれません。たとえば、ビューは、再生コントロールの一部であるか、または変更しない(上、下、右、左) 物理的な方向を表します。ビューがその向きを変えるべきかどうかを考える代わりに、最高にビューを説明する意味内容の属性を選択して下さい。


サブビューを含むビューを作成する時は、サブビューが反転すべきかどうかを決定するために、クラスメソッド userInterfaceLayoutDirectionForSemanticContentAttribute: を使用し、適切な順序でビューをレイアウトできます。


可能な値のリストについては、UISemanticContentAttribute を参照してください。


利用可能

iOS 6.0 以降で利用可能。





+ userInterfaceLayoutDirectionForSemanticContentAttribute:


与えられた意味内容の属性用のユーザインタフェースの方向を返します。


宣言

<< SWIFT >>

class func userInterfaceLayoutDirectionForSemanticContentAttribute(_ attribute:
UISemanticContentAttribute) -> UIUserInterfaceLayoutDirection << OBJECTIVE-C >> + (UIUserInterfaceLayoutDirection)userInterfaceLayoutDirectionForSemanticContentAttribute:
(UISemanticContentAttribute)attribute


パラメーター

attrubuteビューの意味内容の属性。

戻り値

ユーザインタフェースのレイアウトの方向(左から右へ、または右から左へ)。


議論

サブビューを含むビューを作成するときは、サブビューを反転する必要があるかどうかを判断するためにこのメソッドを使用して、適切な順序でビューをレイアウトできます。


利用可能

iOS 9.0 以降で利用可能。





コンテンツの余白の構成


layoutMargins プロパティ


ビュー内のコンテンツをレイアウトする際使用する、デフォルトの間隔。


宣言

<< SWIFT >>

var layoutMargins: UIEdgeInsets

<< OBJECTIVE-C >>
@property(nonatomic) UIEdgeInsets layoutMargins


議論

ビューと全てのサブビューの縁との間の(ポイント単位で測定された) 空間の所望の量を指定するには、このプロパティを使用して下さい。自動レイアウトは、コンテンツを配置するための手がかりとして、あなたのマージンを使用します。たとえば、フォーマット文字列 “|-[subview]-|”を使用して、水平方向の制約のセットを指定した場合、サブビューの左右の縁は、対応するレイアウトマージンでスーパービューの端からはめ込まれています。あなたのビューの縁がスーパービューの縁に近く、preservesSuperviewLayoutMargins プロパティが YES の場合、実際のレイアウトマージンはスーパービューのマージンがオーバーラップスル事からコンテンツを防ぐために増加されています。


デフォルトのマージン(余白) は、それぞれの側に 8 ポイントです。


ビューが、ビューコントローラのルートビューである場合は、システムがマージンを設定し、管理します。上下の余白はゼロポイントに設定されています。左右のマージンは、現在のサイズクラスによって異なりますが、16 または 20 ポイントにできます。これらの余白を変更することはできません。


利用可能

iOS 8.0 以降で利用可能。





preservesSuperviewLayoutMargins プロパティ


現在のビューも、そのスーパービューのマージンを尊重するかどうかを示すブール値。


宣言

<< SWIFT >>

var preservesSuperviewLayoutMargins: Bool

<< OBJECTIVE-C >>
@property(nonatomic) BOOL preservesSuperviewLayoutMargins


議論

このプロパティの値が YES の時は、コンテンツをレイアウトするときに、スーパービューのマージンも考慮されています。このマージンは、ビューのエッジとそのスーパービューの間の距離が、対応するマージンよりも小さい場合、レイアウトに影響を与えます。たとえば、そのフレームが正確にそのスーパービューの境界に一致するコンテンツビューを持っている可能性があります。スーパービューのマージンのいずれかが、コンテンツのビューと独自のマージンで示される領域内にある場合には、UIKit はスーパービューのマージンを尊重するために、コンテンツビューのレイアウトを調整します。調整の量は、その内容を保証するために必要な最小量であり、スーパービューのマージンの内側でもあります。


このプロパティのデフォルト値は、NO です。


利用可能

iOS 8.0 以降で利用可能。





- layoutMarginsDidChange


レイアウトのマージンが変更したと、そのビューに通知します。


宣言

<< SWIFT >>

func layoutMarginsDidChange()

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


議論

このメソッドのデフォルト実装は何もしません。サブクラスは、このメソッドをオーバーライドし、ビューの layoutMargins プロパティの値が変わった時に応答するように使用できます。例えば、あなたのビューのサブクラスが手動でレイアウトを処理したり、描画時のレイアウトのマージンを使用している場合、このメソッドをオーバーライドします。両方の場合、図面やレイアウト更新を開始するために、このメソッドを使用できます。


利用可能

iOS 8.0 以降で利用可能。





ビューの描画と更新


- drawRect:


渡された長方形内に受信者のイメージを描画します。


宣言

<< SWIFT >>

func drawRect(_ rect: CGRect)

<< OBJECTIVE-C >>
- (void)drawRect:(CGRect)rect


パラメーター

rect更新が必要なビューの境界の一部。あなたのビューが描画される最初の時は、この長方形は、典型的には、あなたのビューの全可視範囲です。しかし、その後の描画操作中に、長方形は、ビューの一部だけを指定できます。

議論

このメソッドのデフォルトの実装は何もしません。そのビューのコンテンツを描画するために、コアグラフィックスと UIKit のような技術を使用するサブクラスは、このメソッドをオーバーライドして、そこに自分の描画コードを実装する必要があります。あなたのビューが、他の方法でそのコンテンツを設定した場合、このメソッドをオーバーライドする必要はありません。例えば、あなたのビューがちょうど背景色を表示するか、そのコンテンツを直接下にある層のオブジェクトを使用して設定している場合、このメソッドをオーバーライドする必要はありません。


このメソッドが呼び出された時点では、UIKit はビューのために適切に描画環境を構成しており、あなたがコンテンツをレンダリングする必要がある、どのような描画メソッドや関数を単に呼び出せます。具体的には、UIKit は描画するためのグラフィックスコンテキストを作成して構成し、その起源があなたのビューの境界の長方形の原点と一致するように、そのコンテキストの変換を調整します。 UIGraphicsGetCurrentContext 機能を使用して、グラフィックスコンテキストへの参照を取得することができますが、それは drawRect: メソッドへの呼び出しの間で変更しうるので、グラフィックスコンテキストへの強い参照は確立しません。


同様に、OpenGL ES と GLKView クラスを使用して描画する場合は、GLKit は、このメソッドを呼び出す(またはあなたの GLKView デリゲートの glkView:drawInRect: メソッド) 前に、あなたのビューに応じて適切に基礎となる OpenGL ES コンテキストを構成し、どのような OpenGL ES があなたのコンテンツをレンダリングする必要があると何であれ命令する者を簡単に発行できます。OpenGL ES を使用して描画する方法の詳細については、iOS 用の OpenGL ES プログラミングガイド を参照してください。


rect パラメータで指定した長方形に、全ての描画を制限する必要があります。加えて、ビューの opaque プロパティが、YES に設定されている場合、あなたの drawRect: メソッドは、不透明内容で、指定された長方形を完全に埋めなければなりません。


直接 UIView のサブクラスを作成する場合は、このメソッドの実装は、super を呼び出す必要はありません。しかし、別のビュークラスをサブクラス化している場合は、実装の中でいくつかの点で super を呼び出す必要があります。


ビューが最初に表示されるか、イベントが発生したときには、ビューの可視部分を無効にすると、このメソッドが呼び出されます。直接自分自身でこのメソッドを呼び出しては決してなりません。代わりに、あなたのビューの一部を無効にし、したがってその部分を再描画させるために、setNeedsDisplay または setNeedsDisplayInRect: を呼び出します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– setNeedsDisplay
– setNeedsDisplayInRect:
contentMode




- setNeedsDisplay


再描画するべきものとして、受信者の全体の境界の長方形をマークします。


宣言

<< SWIFT >>

func setNeedsDisplay()

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


議論

ビューのコンテンツを再描画する必要があるシステムに通知するために、このメソッドまたは setNeedsDisplayInRect: を使用できます。このメソッドは、リクエストのメモを作成し、すぐに戻ります。すべて無効化されたビューが更新されるポイントで、次の描画サイクルまでビューは実際には、再描画されません。



注意: あなたのビューが CAEAGLLayer オブジェクトによって支えられている場合、このメソッドは効果がありません。これは、そのコンテンツをレンダリングするために(UIKit や Core Graphicsのような) ネイティブな描画技術を使用するビューで使用するためのものです。


ビューは、ビューの変更の場合にのみコンテンツや外観を再描画することを要求するため、このメソッドを使用する必要があります。単にビューの外観を変更すると、ビューは一般的に再描画しません。代わりに、その既存のコンテンツは、ビューの contentMode プロパティの値に基づいて調整されます。既存のコンテンツを再表示すると、変更していないコンテンツを再描画する必要性を回避することによってパフォーマンスが向上します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– drawRect:
– setNeedsDisplayInRect:
contentMode




- setNeedsDisplayInRect:


再描画が必要であると受信者の指定された長方形をマークします。


宣言

<< SWIFT >>

func setNeedsDisplayInRect(_ rect: CGRect)

<< OBJECTIVE-C >>
- (void)setNeedsDisplayInRect:(CGRect)invalidRect


パラメーター

invalidRect無効としてマークすべき受信者の長方形の領域。それは、受信者の座標系で指定する必要があります。

議論

ビューのコンテンツを再描画する必要があるシステムに通知するために、このメソッドまたは setNeedsDisplay を使用できます。このメソッドはただちに無効な長方形のビューの現在のリストに指定された長方形を追加し返します。ビューは、すべて無効化されたビューが更新されるポイントで、実際には次の描画サイクルまで再描画されません。



注意: あなたのビューが CAEAGLLayer オブジェクトによって支えられている場合、このメソッドは効果がありません。これは、そのコンテンツをレンダリングするために(UIKit と Core Graphics のような) ネイティブの描画技術を使用するビューでのみ使用するためのものです。


ビューは、ビューのコンテンツや外観が変更した場合にのみ再描画することを要求するために、このメソッドを使用する必要があります。単にビューの外観を変更する場合、ビューは一般的に再描画されません。代わりに、その既存のコンテンツは、ビューの contentMode プロパティの値に基づいて調整されます。既存のコンテンツを再表示すると、変更されていないコンテンツを再描画する必要性を回避することによってパフォーマンスが向上します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– drawRect:
– setNeedsDisplay
contentMode




contentScaleFactor プロパティ


ビューに適用されるスケール係数。


宣言

<< SWIFT >>

var contentScaleFactor: CGFloat

<< OBJECTIVE-C >>
@property(nonatomic) CGFloat contentScaleFactor


議論

スケール係数は、ビュー内のコンテンツが、デバイスの座標空間(ピクセル単位で測定) に論理座標空間(ポイント単位で測定) からマッピングされる方法を決定します。この値は、通常、1.0 または 2.0 のいずれかです。より高いスケール係数は、ビューの各ポイントが、下層内の複数のピクセルで表現されることを示しています。例えば、スケール係数が 2.0 であり、ビューのフレームサイズが、50×50 ポイントで、そのコンテンツを提示するために使用されるビットマップのサイズが 100×100 ピクセルである場合。


このプロパティのデフォルト値は、現在のビューを表示するスクリーンに関連付けられたスケール係数です。カスタムビューが、カスタムの drawRect: メソッドを実装していて、ウィンドウに関連付けているか、または、OpenGL ES コンテンツを描画する GLKView クラスを使用する場合、あなたのビューは、スクリーンの最大解像度で描画します。システムビューの場合、このプロパティの値は、高解像度の画面でも 1.0 とすることができます。


一般的に、このプロパティの値を変更する必要はありません。しかし、アプリケーションが、OpenGL ES を使用して描画する場合は、レンダリングのパフォーマンスのため、画質を交換してスケール係数を変更したいかもりれません。あなたの OpenGL ES のレンダリング環境を調整する方法の詳細については、iOS 用の OpenGL ES プログラミング・ガイド高解像度ディスプレイのサポート を参照してください。


利用可能

iOS 4.0 以降で利用可能。





- tintColorDidChange


tintColor プロパティが変更した時、システムによって呼び出されます。


宣言

<< SWIFT >>

func tintColorDidChange()

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


議論

そのビューの tintColor プロパティの値をあなたのコードが変更する時、ビューでシステムはこのメソッドを呼び出します。また、変更された相互作用の淡い色を継承するサブビューでシステムはこのメソッドを呼び出します。


あなたの実装では、必要に応じて、ビューのレンダリングを更新します。


利用可能

iOS 7.0 以降で利用可能。


以下も見よ

tintColor




ビューコンテンツの印刷書式


- viewPrintFormatter


受信しているビューの印刷書式を返します。


宣言

<< SWIFT >>

func viewPrintFormatter() -> UIViewPrintFormatter

<< OBJECTIVE-C >>
- (UIViewPrintFormatter *)viewPrintFormatter


戻り値

UIViewPrintFormatter オブジェクトか、またはオブジェクトが作成できなかった場合 nil 。それが正常に作成された場合、返されたオブジェクトは、自動的にこのビューに関連付けられます。


議論

印刷ジョブを開始するとき、あなたのビュー用に適切なビュー印刷書式オブジェクトを取得するために、このメソッドを呼び出せます。印刷中に、あなたのビューのページレイアウトオプションを構成するには、書式オブジェクトを使用できます。このメソッドを呼び出すたびに、独自のビューの印刷書式オブジェクトを取得します。


ビューの印刷動作を構成するための、印刷書式を使用する方法の詳細については、iOS 用の描画と印刷ガイド を参照してください。


利用可能

iOS 4.2 以降で利用可能。


以下も見よ

– drawRect:forViewPrintFormatter:



– drawRect:forViewPrintFormatter:


印刷用にビューのコンテンツを描画するため実装されています。


宣言

<< SWIFT >>

         func drawRect(_ rect: CGRect,
forViewPrintFormatter formatter: UIViewPrintFormatter)

<< OBJECTIVE-C >>
- (void)drawRect:(CGRect)area
forViewPrintFormatter:(UIViewPrintFormatter *)formatter


パラメーター

area印刷可能なコンテンツを描画するための領域を定義する長方形。
formatterviewPrintFormatter メソッドを呼び出すことによって得られる、UIViewPrintFormatter のインスタンス。

議論

ビューの印刷されたコンテンツが、その表示された内容と異なって表示させたい場合は、このメソッドを実装して下さい。印刷ジョブにビューの印刷書式を追加する時、このメソッドを実装しない場合は、ビューの drawRect: メソッドは、印刷用コンテンツを提供するために呼び出されます。


印刷されたコンテンツ用のカスタム描画ルーチンを実装する方法の詳細については。iOS 用の描画と印刷ガイド を参照してください。


利用可能

iOS 4.2 以降で利用可能。





ジェスチャ認識装置の管理


- addGestureRecognizer:


ビューに、ジェスチャー認識装置を添付します。


宣言

<< SWIFT >>

func addGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer)

<< OBJECTIVE-C >>
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer


パラメーター

gestureRecognizerUIGestureRecognizer クラスから派生したクラスのオブジェクト。このパラメータは nil であってはなりません。

議論

ビューに、ジェスチャ認識装置を取り付けた場合、ジェスチャーの表現の範囲を定義し、そのビューとそのサブビューのすべてにヒットテストしたタッチを、受信するようにします。ビューは、ジェスチャ認識装置への強い参照を確立します。


利用可能

iOS 3.2 以降で利用可能。


以下も見よ

– removeGestureRecognizer:
gestureRecognizers




- removeGestureRecognizer:


受信しているビューからジェスチャ認識装置を切り離します。


宣言

<< SWIFT >>

func removeGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer)

<< OBJECTIVE-C >>
- (void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer


パラメーター

gestureRecognizerUIGestureRecognizer クラスから派生したクラスのオブジェクト。

議論

このメソッドは、ビューからそれを取り外すに加えて、gestureRecognizer を解放します。


利用可能

iOS 3.2 以降で利用可能。


以下も見よ

– addGestureRecognizer:
gestureRecognizers




gestureRecognizers プロパティ


現在のビューに取り付けられている、ジェスチャ認識装置オブジェクト。


宣言

<< SWIFT >>

var gestureRecognizers: [UIGestureRecognizer]?

<< OBJECTIVE-C >>
@property(nonatomic, copy) NSArray <__kindof UIGestureRecognizer *> *gestureRecognizers


議論

これらの各オブジェクトは、抽象基本クラス UIGestureRecognizer のサブクラスのインスタンスです。添付されたジェスチャー認識装置がない場合、このプロパティの値は空の配列です。


利用可能

iOS 3.2 以降で利用可能。





- gestureRecognizerShouldBegin:


ジェスチャー認識装置が、タッチイベントを追跡し続けることが許されるべきであるかビューに尋ねます。


宣言

<< SWIFT >>

func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool

<< OBJECTIVE-C >>
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer


パラメーター

gestureRecognizerUIGestureRecognizerStatePossible な状態から移行しようとしているジェスチャー認識装置。

戻り値

ジェスチャー認識装置が、タッチイベントを追跡し続けるべきで、ジェスチャーをトリガーするためにそれらを使用する時は YES、それが UIGestureRecognizerStateFailed の状態に移行するべきなら NO


議論

サブクラスは、このメソッドをオーバーライドして、特定のジェスチャーの認識を防止するためにそれを使用できます。例えば、UISlider クラスは、スライダの進行方向と平行にスワイプするのと、親指でそれがスタートするようにするには、このメソッドを使用して下さい。


このメソッドが呼び出された時点で、ジェスチャー認識装置は UIGestureRecognizerStatePossible の状態にあり、それが UIGestureRecognizerStateBegan の状態に移行するために必要なイベントがあると考えています。


このメソッドのデフォルトの実装は、YES を返します。


利用可能

iOS 6.0 以降で利用可能。





ブロックオブジェクトでビューのアニメーション化


+ animateWithDuration:delay:options:animations:completion:


指定された持続時間、遅延、オプション、および完了ハンドラを使用して、1つ以上のビューへの変更をアニメーション化します。


宣言

<< SWIFT >>

class func animateWithDuration(_ duration: NSTimeInterval,
                         delay delay: NSTimeInterval,
                       options options: UIViewAnimationOptions,
                    animations animations: () -> Void,
                    completion completion: ((Bool) -> Void)?)

<< OBJECTIVE-C >>
+ (void)animateWithDuration:(NSTimeInterval)duration
                      delay:(NSTimeInterval)delay
                    options:(UIViewAnimationOptions)options
                 animations:(void (^)(void))animations
                 completion:(void (^)(BOOL finished))completion


パラメーター

duration秒単位で測定された、アニメーションの総継続時間。負の値または 0 を指定した場合、変更は、それらをアニメーション化することなく行われます。
delayアニメーションを開始する前に待機すべき時間の量(秒単位で測定される)。すぐにアニメーションを開始するには 0 の値を指定します。
optionsアニメーションをどのように実行するかを示すオプションのマスク。有効な定数の一覧については、UIViewAnimationOptions を参照してください。
animationsビューにコミットする変更を含むブロックオブジェクト。これは、プログラムであなたのビュー階層内のビューのいずれかのアニメーション化可能なプロパティを変更する場所です。このブロックはパラメータを取らず、戻り値はありません。このパラメータは NULL であってはいけません。
completionアニメーションシーケンスが終了したときに実行されるブロックオブジェクト。このブロックは、戻り値はなく、終了ハンドラが呼び出される前にアニメーションが実際に終了したかどうかを示す単一のブール引数を取ります。アニメーションの継続時間が 0 である場合、このブロックは、次の実行ループサイクルの開始時に行われます。このパラメータは NULL であっても良いです。

議論

このメソッドは、ビュー上で実行するためにアニメーションのセットを開始します。animations パラメータ内のブロックオブジェクトは、1つ以上のビューのプロパティをアニメーション化するためのコードを含んでいます。


ビューがアニメーション化されるために、アニメーションの間、ユーザの相互作用は一時的に無効にされています。(iOS 5 以前では、ユーザの相互作用が。アプリケーション全体で無効になっています) ユーザーがビューと対話できるようにしたい場合は、options パラメータに定数 UIViewAnimationOptionAllowUserInteraction を含ませて下さい。


利用可能

iOS 4.0 以降で利用可能。





+ animateWithDuration:animations:completion:


指定された期間と完了ハンドラを使用して、1つ以上のビューへの変更をアニメーション化します。


宣言

<< SWIFT >>

class func animateWithDuration(_ duration: NSTimeInterval,
                    animations animations: () -> Void,
                    completion completion: ((Bool) -> Void)?)

<< OBJECTIVE-C >>
+ (void)animateWithDuration:(NSTimeInterval)duration
                 animations:(void (^)(void))animations
                 completion:(void (^)(BOOL finished))completion


パラメーター

duration秒単位で測定した、アニメーションの合計時間。負の値または 0 を指定した場合、変更は、アニメーション化することなく行われます。
animationsビューにコミットする、変更を含むブロックオブジェクト。これは、プログラムであなたのビュー階層内のビューのいずれかのアニメーション化可能プロパティを変更する場所です。このブロックはパラメータを取らず、戻り値はありません。このパラメータは NULL であってはいけません。
completionアニメーションシーケンスが終了すした時に、実行されるブロックオブジェクト。このブロックは、戻り値はなく、終了ハンドラが呼び出される前にアニメーションが実際に終了したかどうかを示す単一のブール引数を取ります。アニメーションの継続時間が 0 である場合、このブロックは、次の実行ループサイクルの開始時に行われます。このパラメータに NULL であっても良いです。

議論

このメソッドは、UIViewAnimationOptionCurveEaseInOutUIViewAnimationOptionTransitionNone のアニメーションオプションを使用して、すぐに指定されたアニメーションを実行します。


例えば、それが完全に透明になるまで、ビューをフェードしたくて、またそれからあなたのビュー階層から削除した場合、次のようなコードを使用できます。


  1. [UIView animateWithDuration:0.2
  2.         animations:^{view.alpha = 0.0;}
  3.         completion:^(BOOL finished){ [view removeFromSuperview]; }];

アニメーションの間、ビューがアニメーション化されるためにユーザの相互作用が一時的に無効にされます。(iOS 5 以前では、ユーザとの相互作用は、アプリケーション全体で無効になっています。)


利用可能

iOS 4.0 以降で利用可能。





+ animateWithDuration:animations:


指定された期間を使用して 1つ以上のビューへの変更をアニメーション化します。


宣言

<< SWIFT >>

class func animateWithDuration(_ duration: NSTimeInterval,
                    animations animations: () -> Void)

<< OBJECTIVE-C >>
+ (void)animateWithDuration:(NSTimeInterval)duration
                 animations:(void (^)(void))animations


パラメーター

duration秒単位で測定した、アニメーションの合計時間。負の値または 0 を指定した場合、変更は、それらをアニメーション化することなく行われます。
animationsビューにコミットする、変更を含むブロックオブジェクト。これは、プログラムであなたのビュー階層内のビューのいずれかのアニメーション化可能プロパティを変更する場所です。このブロックはパラメータを取らず、戻り値はありません。このパラメータは NULL であってはいけません。

議論

このメソッドは、UIViewAnimationOptionCurveEaseInOutUIViewAnimationOptionTransitionNone アニメーションオプションを使用して、指定されたアニメーションをすぐにアニメーションを実行します。


アニメーションの間、ビューがアニメーション化されるため、ユーザの相互作用は一時的に無効にされます。(iOS 5 以前では、ユーザとの対話は、アプリケーション全体で無効になっています。)


利用可能

iOS 4.0 以降で利用可能。





+ transitionWithView:duration:options:animations:completion:


指定されたコンテナビューの移行アニメーションを作成します。


宣言

<< SWIFT >>

class func transitionWithView(_ view: UIView,
                     duration duration: NSTimeInterval,
                      options options: UIViewAnimationOptions,
                   animations animations: (() -> Void)?,
                   completion completion: ((Bool) -> Void)?)

<< OBJECTIVE-C >>
+ (void)transitionWithView:(UIView *)view
                  duration:(NSTimeInterval)duration
                   options:(UIViewAnimationOptions)options
                animations:(void (^)(void))animations
                completion:(void (^)(BOOL finished))completion


パラメーター

view移行を実行するコンテナビュー。
duration秒単位で測定された移行アニメーションの継続時間。負の値または 0 を指定した場合、移行はアニメーションすることなく行われます。
optionsどのようにアニメーションを実行するかを示すオプションのマスク。有効な定数の一覧については、UIViewAnimationOptions を参照してください。
animations指定したビューに行いたい変更を含んでいるブロックオブジェクト。このブロックにはパラメータを取らず、戻り値もありません。このパラメータは NULL であってはいけません。
completionアニメーションシーケンスが終了した時、実行されるブロックオブジェクト。このブロックは、戻り値はなく、終了ハンドラが呼び出される前にアニメーションが実際に終了したかどうかを示す単一のブール引数を取ります。アニメーションの継続時間が 0 である場合、このブロックは、次の実行ループサイクルの開始時に行われます。このパラメータには NULL を指定できます。

議論

指定したビューの状態への変更を行うことができるように、このメソッドは、それへの移行を適用します。animations パラメータで指定したブロックは、あなたが作りたい変更はどんな状態でも含んでいます。指定したビューのサブビューを追加し、削除し、表示し、または隠すには、このブロックを使用できます。他のアニメーション可能な変更を組み込むしたい場合は、options パラメータに UIViewAnimationOptionAllowAnimatedContent キーを含めなければなりません。


以下のコードは、指定されたコンテナビューの反転移行を作成します。移行中の適切な時点で、あるサブビューは除去され、別のサブビューはコンテナビューに追加されます。これは、新しいビューが新しいサブビューで所定の位置に反転したかのように見えますが、実際にそれが新しい構成で元の位置に戻り、アニメーションされるのとど同じビューです。


  1. [UIView transitionWithView:containerView
  2.                 duration:0.2
  3.                 options:UIViewAnimationOptionTransitionFlipFromLeft
  4.                 animations:^{ [fromView removeFromSuperview]; [containerView addSubview:toView]; }
  5.                 completion:NULL];

アニメーションの間、ビューがアニメーション化されるために、ユーザの相互作用は一時的に無効にされています。(iOS 5 以前では、ユーザの相互作用が、アプリケーション全体で無効になっています。) ユーザーがビューと相互作用できるようにしたい場合は、options パラメータで定数 UIViewAnimationOptionAllowUserInteraction を含めて下さい。


利用可能

iOS 4.0 以降で利用可能。





+ transitionFromView:toView:duration:options:completion:


与えられたパラメータを使用して、指定されたビュー間の移行アニメーションを作成します。


宣言

<< SWIFT >>

class func transitionFromView(_ fromView: UIView,
                       toView toView: UIView,
                     duration duration: NSTimeInterval,
                      options options: UIViewAnimationOptions,
                   completion completion: ((Bool) -> Void)?)

<< OBJECTIVE-C >>
+ (void)transitionFromView:(UIView *)fromView
                    toView:(UIView *)toView
                  duration:(NSTimeInterval)duration
                   options:(UIViewAnimationOptions)options
                completion:(void (^)(BOOL finished))completion


パラメーター

fromView移行の開始するビュー。デフォルトでは、このビューは、移行の一環としてそのスーパービューから削除されます。
toView移行の終了するビュー。デフォルトでは、このビューは、移行の一環として fromView のスーパービューに追加されます。
duration秒単位で測定された移行アニメーションの継続時間。負の値または 0 を指定した場合、移行はアニメーションすることなく行われます。
optionsどのようにアニメーションを実行するかを示すオプションのマスク。有効な定数の一覧については、UIViewAnimationOptions を参照してください。
completionアニメーションシーケンスが終了した時、実行されるべきブロックオブジェクト。このブロックは、戻り値はなく、終了ハンドラが呼び出される前にアニメーションが実際に終了したかどうかを示す単一のブール引数を取ります。アニメーションの継続時間が 0 である場合、このブロックは、次の実行ループサイクルの開始時に行われます。このパラメータは NULL を指定できます。

議論

このメソッドは、toView パラメータのビューに fromView パラメータのビューから移行する簡単な方法を提供します。デフォルトでは、fromView のビューは toView のビューによってビュー階層内に置き換えられます。両方のビューがすでにあなたのビュー階層の一部である場合は、単に隠したり、表示するための options パラメータに UIViewAnimationOptionShowHideTransitionViews オプションを含めることができます。


このメソッドは、そのビュー階層内のビューのみを変更します。それはいかなる方法でもアプリケーションのビューコントローラーを変更しません。例えば、ビューコントローラによって表示されたルートビューを変更するためこのメソッドを使用した場合、あなたにはその変更を処理するために適切にビューコントローラを更新する責任があります。


別のアニメーションが既に実行中でない限り、それが現在のアニメーションが終了した直後に開始する場合には、ビューの移行はすぐに開始されます。


アニメーションの間、ビューがアニメーション化されるために、ユーザの相互作用は一時的に無効にされています。(iOS 5 以前では、ユーザの相互作用が、アプリケーション全体で無効になっています。) ユーザーがビューと相互作用できるようにしたい場合は、options パラメータに定数 UIViewAnimationOptionAllowUserInteraction を含めて下さい。


利用可能

iOS 4.0 以降で利用可能。





+ animateKeyframesWithDuration:delay:options:animations:completion:


現在のビュー用のキーフレームベースのアニメーションを設定するために使用できるアニメーションブロックオブジェクトを作成します。


宣言

<< SWIFT >>

class func animateKeyframesWithDuration(_ duration: NSTimeInterval,
                                  delay delay: NSTimeInterval,
                                options options: UIViewKeyframeAnimationOptions,
                             animations animations: () -> Void,
                             completion completion: ((Bool) -> Void)?)

<< OBJECTIVE-C >>
+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration
                               delay:(NSTimeInterval)delay
                             options:(UIViewKeyframeAnimationOptions)options
                          animations:(void (^)(void))animations
                          completion:(void (^)(BOOL finished))completion


パラメーター

duration秒単位で測定された全体のアニメーションの継続時間。負の値または 0 を指定した場合、変更はすぐに、アニメーションなしで行われます。
delayアニメーションを開始する前に待機する時間を(秒単位で) 指定します。
options どのようにアニメーションを実行するかを示すオプションのマスク。有効な定数の一覧については、UIViewAnimationOptions を参照してください。
animationsビューにコミットする変更を含むブロックオブジェクト。一般的に、このブロックの中から addKeyframeWithRelativeStartTime:relativeDuration:animations: メソッドを 1回以上呼び出します。それらの変更を全期間にわたってアニメーション化したい場合は、直接ビューの値を変更することもあります。このブロックはパラメータを取らず、戻り値はありません。このパラメータに nil 値を使用しないでください。
completionアニメーションシーケンスが終了した時、実行されるべきブロックオブジェクト。このブロックは、戻り値がなく、終了ハンドラが呼び出される前にアニメーションが終了したかどうかを示す単一のブール引数を取ります。アニメーションの継続時間が 0 である場合、このブロックは、次の実行ループサイクルの開始時に行われます。このパラメータには nil 値を使用できます。

議論

このメソッドは、キーフレームベースのアニメーションを設定するために使用できるアニメーションブロックを作成します。キーフレームそれ自身は、このメソッドを使用して作成する最初のアニメーションブロックの一部ではありません。animations ブロック内で、 addKeyframeWithRelativeStartTime:relativeDuration:animations: メソッドを 1回以上呼び出して、キーフレームの時間とアニメーションデータを追加する必要があります。キーフレームを追加すると、アニメーションを現在の値から最初のキーフレームの値に、ビューをアニメーション化し、その後次のキーフレームの値へ、とあなたが指定した回数繰り返します。


animations ブロック内に全くキーフレームを追加しない場合、アニメーションは最初から最後まで進み、標準のアニメーションブロックのように終了します。言い換えれば、システムは指定された duration を超える全ての新しい値に、現在のビューの値からアニメーション化します。


利用可能

iOS 7.0 以降で利用可能。


以下も見よ

+ addKeyframeWithRelativeStartTime:relativeDuration:animations:



+ addKeyframeWithRelativeStartTime:relativeDuration:animations:


キーフレームアニメーションの単一フレームのタイミングとアニメーションの値を指定します。


宣言

<< SWIFT >>

class func addKeyframeWithRelativeStartTime(_ frameStartTime: Double,
                           relativeDuration frameDuration: Double,
                                 animations animations: () -> Void)

<< OBJECTIVE-C >>
+ (void)addKeyframeWithRelativeStartTime:(double)frameStartTime
                        relativeDuration:(double)frameDuration
                              animations:(void (^)(void))animations


パラメーター

frameStartTime指定されたアニメーションを開始すべき時間。この値は、全体のアニメーションの開始を表す 0、全体的なアニメーションの終了を表す 0 で、0 から 1 の範囲でなければなりません。例えば、2 秒の長さのアニメーションがあった場合、0.5 の開始時刻を指定すると、全体的なアニメーションの開始後 1 秒で実行を開始するアニメーションを生じます。
frameDuration指定された値にアニメーション化すべき時間の長さ。この値は 0 から 1 の範囲でなければならず、全体のアニメーションの長さに対する相対的な時間の量を示しています。0 の値を指定した場合、animations ブロックで設定した全てのプロパティは、指定された開始時刻に直ちに更新します。ゼロ以外の値を指定した場合、プロパティはその時間をかけてアニメーション化します。例えば、2 秒の長さのアニメーションに 0.5 の継続期間を指定すると、アニメーションの継続時間は 2 秒になります。
animations実行したいアニメーションを含むブロックオブジェクト。これは、プログラムであなたのビュー階層内のビューのいずれかのアニメーション化可能プロパティを変更する場所です。このブロックはパラメータを取らず、戻り値はありません。このパラメータは nil であってはなりません。

議論

キーフレームアニメーション中にビュープロパティをアニメーション化するには、アニメーションブロック内からこのメソッドを呼び出し、animateKeyframesWithDuration:delay:options:animations:completion: メソッドに渡してください。異なる値の間でアニメーション化するか、またはビュープロパティのアニメーションのタイミングを微調整するには、ブロック内でこのメソッドを複数回呼出せます。


animations ブロックで変更するビュープロパティを使用すると、frameDuration パラメータで指定したタイムスパン上でアニメーション化します。プロパティは、frameStartTime パラメータで指定した時間までアニメーションは開始されません。フレーム開始時間の後、アニメーションはその指定された継続期間にわたって、または別のアニメーションで中断されるまで実行されます。


利用可能

iOS 7.0 以降で利用可能。


以下も見よ

+ animateKeyframesWithDuration:delay :options:animations:completion:




+ performSystemAnimation:onViews:options:animations:completion:


あなたが定義したオプションのパラレルアニメーションに沿って、1つ以上のビューの特定のシステム提供のアニメーションを実行します。


宣言

<< SWIFT >>

class func performSystemAnimation(_ animation: UISystemAnimation,
                          onViews views: [UIView],
                          options options: UIViewAnimationOptions,
                       animations parallelAnimations: (() -> Void)?,
                       completion completion: ((Bool) -> Void)?)

<< OBJECTIVE-C >>
+ (void)performSystemAnimation:(UISystemAnimation)animation
                       onViews:(NSArray<__kindof UIView *> *)views
                       options:(UIViewAnimationOptions)options
                    animations:(void (^)(void))parallelAnimations
                    completion:(void (^)(BOOL finished))completion


パラメーター

animation実行すべきシステムのアニメーション。 UISystemAnimation 列挙型からの定数。
viewsその上でアニメーションが実行すべきビュー。
optionsどのようにアニメーションを実行したいかを示すオプションのマスク。有効な定数の一覧については、UIViewAnimationOptions を参照してください。
parallelAnimationsシステムのアニメーションが定義または継承する、同じタイミングと継続期間で、システムのアニメーションと一緒に実行するように指定する追加のアニメーション。

追加のアニメーションでは、システムのアニメーションが実行されているビューのプロパティを変更しないでください。
completionアニメーションシーケンスが終了した時、実行されるべきブロックオブジェクト。終了ハンドラが呼び出される前にアニメーションが終了したか否かを示す単一のブール引数。アニメーションの継続時間が 0 である場合、このブロックは、次の実行ループサイクルの開始時に実行されます。このパラメータには nil 値を使用できます。

利用可能

iOS 7.0 以降で利用可能。





+ animateWithDuration:delay:usingSpringWithDamping: initialSpringVelocity:options:animations:completion:


物理的なスプリングの動きに対応するタイミング曲線を使用してビューのアニメーションを実行します。


宣言

<< SWIFT >>

class func animateWithDuration(_ duration: NSTimeInterval,
                         delay delay: NSTimeInterval,
        usingSpringWithDamping dampingRatio: CGFloat,
         initialSpringVelocity velocity: CGFloat,
                       options options: UIViewAnimationOptions,
                    animations animations: () -> Void,
                    completion completion: ((Bool) -> Void)?)

<< OBJECTIVE-C >>
+ (void)animateWithDuration:(NSTimeInterval)duration
                      delay:(NSTimeInterval)delay
     usingSpringWithDamping:(CGFloat)dampingRatio
      initialSpringVelocity:(CGFloat)velocity
                    options:(UIViewAnimationOptions)options
                 animations:(void (^)(void))animations
                 completion:(void (^)(BOOL finished))completion


パラメーター

duration秒単位で測定した、アニメーションの合計継続期間。負の値または 0 を指定した場合、変更内容は、それらをアニメーション化することなく行われます。
delay(秒単位で測定した) アニメーションの開始前に待機する時間の量。直ちにアニメーションを開始するには 0 の値を指定して下さい。
dampingRatioその静止状態に近づくにつれて減る、スプリングのアニメーションの減衰比。

振動することなく、アニメーションをスムーズに減速するためには、1 の値を使用して下さい。振動を増加させるためには、ゼロに近い減衰比を使用して下さい。
velocityスプリングの最初の速度。アニメーションへのスムーズなスタートのために、添付される前からあったようにビューの速度にこの値を一致させます。

1 の値は1秒で全部のアニメーション距離を横断するのに相当します。例えば、もし全部のアニメーション距離が 200 ポイントで、アニメーションの開始を、1秒あたり 100 ポイントのビュー速度と一致させるには、0.5 の値を使用して下さい。
optionsどのようにアニメーションを実行したいかを示すオプションのマスク。有効な定数の一覧については、UIViewAnimationOptions を参照してください。
animationsビューにコミットする変更を含むブロックオブジェクト。これはプログラムであなたのビュー階層内のビューのいずれかのアニメーション化可能プロパティを変更する場所です。このブロックはパラメータを取らず、戻り値はありません。このパラメータは NULL であってはいけません。
completionアニメーションシーケンスが終了した時、実行されるべきブロックオブジェクト。このブロックは、戻り値はなく、終了ハンドラが呼び出される前にアニメーションが実際に終了したかどうかを示す単一のブール引数を取ります。アニメーションの継続時間が 0 である場合、このブロックは、次の実行ループサイクルの開始時に行われます。このパラメータは NULL を指定できます。

議論


利用可能

iOS 7.0 以降で利用可能。





+ performWithoutAnimation:


ビュー移行アニメーションを無効にします。


宣言

<< SWIFT >>

class func performWithoutAnimation(_ actionsWithoutAnimation: () -> Void)

<< OBJECTIVE-C >>
+ (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation


パラメーター

actionsWithoutAnimationアニメーションなしで実行したいビュー移行コード。

利用可能

iOS 7.0 以降で利用可能。


以下も見よ

+ setAnimationsEnabled:
+ areAnimationsEnabled




ビューのアニメーション化


このセクションのメソッドの使用は、iOS 4 以降では推奨されません。代わりに、ブロックベースのアニメーション・メソッドを使用して下さい。


+ beginAnimations:context:


アニメーションブロックの開始/コミットの開始をマーク。


宣言

<< SWIFT >>

class func beginAnimations(_ animationID: String?,
                   context context: UnsafeMutablePointer<Void>)

<< OBJECTIVE-C >>
+ (void)beginAnimations:(NSString *)animationID
                context:(void *)context


パラメーター

animationIDアニメーション用の、アプリケーションが提供する識別子。
contextアニメーションのこのセットに関連付けたいカスタムデータであり、アニメーションデリゲートメッセージに渡される情報で、setAnimationWillStartSelector:
及び setAnimationDidStopSelector: メソッドを使用したセレクタのセット。

議論

このメソッドは、実行するために、1つ以上のアニメーションを指定したいシステムに通知します。このメソッドを呼び出した後、アニメーションオプション(setAnimation... クラスメソッドを使用して) を構成してから、ビューの望みのアニメーション化可能なプロパティを変更します。あなたのビュープロパティを変更し終えたら、セットを閉じてアニメーションをスケジュール化するために commitAnimations メソッドを呼び出して下さい。


必要に応じて(アニメーションの以前のセットをコミットする前に、このメソッドを再度呼び出して) アニメーションのセットを入れ子にできます。入れ子にするアニメーションは、それらを一緒にグループにし、入れ子にされたグループごとに異なるアニメーションオプションを設定できます。


setAnimationWillStartSelector: あるいは setAnimationDidStopSelector: メソッドを使用して開始・中止セレクタをインストールする場合、あなたが animationIDcontext パラメータで指定した値は、実行時に、あなたのセレクタに渡されます。これらのセレクタに追加情報を渡すために、これらのパラメータを使用できます。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、アニメーションを指定するには、ブロックベースのアニメーション・メソッドを使用する必要があります。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ commitAnimations
+ setAnimationWillStartSelector:
+ setAnimationDidStopSelector:
+ setAnimationDelegate:




+ commitAnimations


アニメーションブロックの開始/コミットの終了をマークし、アニメーションの実行をスケジュールします。


宣言

<< SWIFT >>

class func commitAnimations()

<< OBJECTIVE-C >>
+ (void)commitAnimations


議論

現在のアニメーションセットが最も外側のセットである場合、アプリケーションが実行ループに戻ったとき、このメソッドはアニメーションを開始します。現在のアニメーションセットが別のセット内に入れ子にされている場合、アニメーションの最も外側のセットがコミットされるまでこのメソッドは待ち、それが一緒にアニメーションのすべてをコミットするまで待機します。


アニメーションは、アプリケーションをブロックするのを回避するために、別のスレッドで実行します。このように、複数のアニメーションは、互いの上に重ね合わせることができます。他のものが進行中にどのようにアニメーションを開始するか、 setAnimationBeginsFromCurrentState: を参照してください。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、アニメーションを指定するには、ブロックベースのアニメーション・メソッドを使用する必要があります。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:




+ setAnimationStartDate:


現在のアニメーションブロックの開始時間を設定します。


宣言

<< SWIFT >>

class func setAnimationStartDate(_ startDate: NSDate)

<< OBJECTIVE-C >>
+ (void)setAnimationStartDate:(NSDate *)startTime


パラメーター

startTimeアニメーションを開始すべき時間。

議論

beginAnimations:context:commitAnimations メソッドの間でこのメソッドを呼び出し、アニメーションのそのセットの開始時間を指定します。また、あなたのビューのアニメーション化可能なプロパティを変更する前に、このメソッドを呼び出して下さい。(ブロックベースのアニメーションと併せて、このメソッドを呼びださないでください。) このメソッドを呼び出さない場合は、開始時間は、できるだけ早くアニメーションを開始する CFAbsoluteTimeGetCurrent 関数によって返された値に設定されています。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、アニメーションを指定するには、ブロックベースのアニメーション・メソッドを使用する必要があります。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationDuration:
+ setAnimationDelay:
+ setAnimationCurve:
+ setAnimationRepeatCount:
+ setAnimationRepeatAutoreverses:
+ setAnimationBeginsFromCurrentState:




+ setAnimationsEnabled:


アニメーションが有効になっているかどうかを設定します。


宣言

<< SWIFT >>

class func setAnimationsEnabled(_ enabled: Bool)

<< OBJECTIVE-C >>
+ (void)setAnimationsEnabled:(BOOL)enabled


パラメーター

enabledアニメーションを有効にするには YES を指定し、無効にするには NO を指定します。

議論

アニメーションはデフォルトで有効です。アニメーションを無効にした場合、その後のアニメーションブロック内のコードはまだ実行されているにもかかわらず、アニメーションは実際には発生しません。したがって、アニメーションブロック内で行った全ての変更は、アニメーション化される代わりに即座に反映されます。ブロックベースのアニメーション・メソッドを使用するか、アニメーションの開始/コミット・メソッドを使用するかどうかに関わらず、これは本当です。


このメソッドは、それが呼び出された後に提出されたアニメーションにだけ影響します。既存のアニメーションが実行されている間にこのメソッドを呼び出すと、それらの自然な終着点に到達するまで、それらのアニメーションは実行を継続します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ areAnimationsEnabled
+ performWithoutAnimation:




+ setAnimationDelegate:


任意のアニメーションメッセージのデリゲートを設定します。


宣言

<< SWIFT >>

class func setAnimationDelegate(_ delegate: AnyObject?)

<< OBJECTIVE-C >>
+ (void)setAnimationDelegate:(id)delegate


パラメーター

delegatesetAnimationWillStartSelector:setAnimationDidStopSelector: メソッドを使用して登録したメソッドを定義するオブジェクト。ビューは、アニメーションの継続時間の間、オブジェクトへの強い参照を保持します。

議論

アニメーションが開始または停止したとき、メッセージを受信したい場合、アニメーションデリゲートを指定できます。このメソッドを呼び出した後、必要に応じて適切なセレクタを登録するために setAnimationWillStartSelector:setAnimationDidStopSelector: メソッドを呼び出す必要があります。デフォルトでは、アニメーションデリゲートは nil に設定されています。


主にアニメーションの開始/コミットメソッドを使用して作成したアニメーションブロックのデリゲートを設定するために、このメソッドを使用して下さい。アニメーションブロックが何もしないでいる外からこのメソッドを呼び出します。


このメソッドの使用は、iOS 4.0 以降では推奨されません。ブロックベースのアニメーション・メソッドを使用している場合、ブロック内で直接あなたのデリゲートの開始と終了コードを含めることができます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationWillStartSelector:
+ setAnimationDidStopSelector:




+ setAnimationWillStartSelector:


アニメーションの開始時にアニメーションデリゲートに送信するメッセージを設定します。


宣言

<< SWIFT >>

class func setAnimationWillStartSelector(_ selector: Selector)

<< OBJECTIVE-C >>
+ (void)setAnimationWillStartSelector:(SEL)selector


パラメーター

selectorアニメーションが開始する前に、アニメーションデリゲートに送信すべきメッセージ。デフォルト値は NULL です。このセレクタは、次の形式にします: - (void)animationDidStart:(NSString *)animationID context(void *)context。あなたのメソッドは、以下の引数を取りらなければなりません。
    animationID

    オプションでアプリケーションが提供する識別子を含む NSString。これは、beginAnimations:context: メソッドに渡される識別子の文字列です。この引数は nil にできます。
    context

    オプションでアプリケーションが提供するコンテキスト。これは、beginAnimations:context: メソッドに渡されたコンテキストデータです。この引数は nil にできます。

議論

アニメーションの開始/コミットセットのアニメーションデリゲートを指定した場合は、アニメーションを開始する前に呼び出すセレクタを指定するには、このメソッドを使用します。アニメーションブロックの外から呼び出された場合、このメソッドは何もしません。beginAnimations:context:+ commitAnimations メソッドへの呼び出しの間に呼び出さなければなりません。このセレクタは、デフォルトで NULL に設定されています。



注意: アニメーションが無効になっている場合は、開始セレクタは呼び出されません。


このメソッドの使用は、iOS 4.0 以降では推奨されません。ブロックベースのアニメーション・メソッドを使用している場合、ブロック内で直接あなたのデリゲートの開始コードを含めることができます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationDelegate:
+ setAnimationDidStopSelector:




+ setAnimationDidStopSelector:


アニメーションが停止したときにアニメーションデリゲートに送信するべきメッセージを設定します。


宣言

<< SWIFT >>

class func setAnimationDidStopSelector(_ selector: Selector)

<< OBJECTIVE-C >>
+ (void)setAnimationDidStopSelector:(SEL)selector


パラメーター

selectorアニメーションが終了した後に、アニメーションデリゲートに送信されるメッセージ。デフォルト値は NULL です。このセレクタは、次の形式にします: - (void)animationDidStop:(NSString *)animationID finished(NSNumber *)finished context:(void *)context。あなたのメソッドは、以下の引数を取りらなければなりません。
    animationID

    オプションでアプリケーションが提供する識別子を含む NSString。これは、beginAnimations:context: メソッドに渡される識別子です。この引数は nil にできます。
    finished

    ブール値を含む NSNumber オブジェクト。それが停止する前に、アニメーションが終わりまで実行された場合 YES、またはしなかった場合、値は NO です。
    context

    オプションでアプリケーションが提供するコンテキスト。これは、beginAnimations:context: メソッドに渡されたコンテキストデータです。この引数は nil にできます。

議論

アニメーションの開始/コミットセットのアニメーションデリゲートを指定した場合は、アニメーションの終了後に呼び出すためにセレクタを指定するには、このメソッドを使用します。アニメーションブロックの外から呼び出された場合、このメソッドは何もしません。beginAnimations:context:+ commitAnimations メソッドへの呼び出しの間に呼び出さなければなりません。このセレクタは、デフォルトで NULL に設定されています。



注意: ストップセレクタは、アニメーションが無効になっている場合も呼び出されます。


このメソッドの使用は、iOS 4.0 以降では推奨されません。ブロックベースのアニメーション・メソッドを使用している場合、ブロック内で直接あなたのデリゲートの終了コードを含めることができます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationDelegate:
+ setAnimationWillStartSelector:




+ setAnimationDuration:


アニメーションブロック内のアニメーションの時間(秒単位で測定) を設定します。


宣言

<< SWIFT >>

class func setAnimationDuration(_ duration: NSTimeInterval)

<< OBJECTIVE-C >>
+ (void)setAnimationDuration:(NSTimeInterval)duration


パラメーター

duration秒単位で測定された、アニメーションが発生する期間。

議論

開始/コミットのセットのメソッドを使用してアニメーションを指定している場合は、アニメーションの継続時間を指定するには、このメソッドを使用します。アニメーションブロックの外から呼び出された場合、このメソッドは何もしません。これは、beginAnimations:context:commitAnimations メソッドへの呼び出しの間に呼び出さなければなりません。そして、あなたのビューのアニメーション化可能なプロパティを変更する前に、このメソッドを呼び出さなければなりません。デフォルト値は 0.2 秒です。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、アニメーションとその継続期間を指定するには、ブロックベースのアニメーションメソッドのいずれかを使用する必要があります。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationStartDate:
+ setAnimationDelay:
+ setAnimationCurve:
+ setAnimationRepeatCount:
+ setAnimationRepeatAutoreverses:
+ setAnimationBeginsFromCurrentState:




+ setAnimationDelay:


アニメーションブロック内のプロパティの変更をアニメーション化する前に待機する時間(秒数で) を設定します。


宣言

<< SWIFT >>

class func setAnimationDelay(_ delay: NSTimeInterval)

<< OBJECTIVE-C >>
+ (void)setAnimationDelay:(NSTimeInterval)delay


議論

開始/コミットのセットのメソッドを使用してアニメーションを指定している場合、アニメーションの開始の前の待機時間を指定するには、このメソッドを使用します。アニメーションブロックの外から呼び出された場合、このメソッドは何もしません。これは、beginAnimations:context:commitAnimations メソッドへの呼び出しの間に呼び出さなければなりません。そして、あなたのビューのアニメーション化可能なプロパティを変更する前に、このメソッドを呼び出さなければなりません。デフォルト値は 0.0 秒です。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、 animateWithDuration:delay:options:animations:completion: メソッドを使用して、あなたのアニメーションと開始遅延を指定します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationStartDate:
+ setAnimationDuration:
+ setAnimationCurve:
+ setAnimationRepeatCount:
+ setAnimationRepeatAutoreverses:
+ setAnimationBeginsFromCurrentState:




+ setAnimationCurve:


アニメーションブロック内のプロパティの変更をアニメーション化するときに使用するカーブを設定します。


宣言

<< SWIFT >>

class func setAnimationCurve(_ curve: UIViewAnimationCurve)

<< OBJECTIVE-C >>
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve


開始/コミットのセットのメソッドを使用してアニメーションを指定している場合、アニメーションに使用したいカーブの種類を指定するには、このメソッドを使用します。アニメーションブロックの外から呼び出された場合、このメソッドは何もしません。これは、beginAnimations:context:commitAnimations メソッドへの呼び出しの間に呼び出さなければなりません。そして、あなたのビューのアニメーション化可能なプロパティを変更する前に、このメソッドを呼び出さなければなりません。デフォルト値は UIViewAnimationCurveEaseInOut です。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、 animateWithDuration:delay:options:animations:completion: メソッドを使用して、あなたのアニメーションのカーブオプションを指定します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationStartDate:
+ setAnimationDuration:
+ setAnimationDelay:
+ setAnimationRepeatCount:
+ setAnimationRepeatAutoreverses:
+ setAnimationBeginsFromCurrentState:




+ setAnimationRepeatCount:


アニメーションブロック内で繰り返す、アニメーションの回数を設定します。


宣言

<< SWIFT >>

class func setAnimationRepeatCount(_ repeatCount: Float)

<< OBJECTIVE-C >>
+ (void)setAnimationRepeatCount:(float)repeatCount


パラメーター

repeatCountアニメーションが繰り返す回数。この値は、分数にできます。値 0 を指定すると、アニメーションは繰り返さずに一度行われます。

議論

指定されたアニメーションを繰り返す回数を指定するには、このメソッドを使用します。アニメーションブロックの外から呼び出された場合、このメソッドは何もしません。ブロックベースのメソッドやアニメーションブロックを定義するための開始/コミットのメソッドのいずれかと一緒に、このメソッドを使用できます。明示的に繰り返し回数を設定しない場合、アニメーションは繰り返されません。


animateWithDuration:delay:options:animations:completion: メソッドに、UIViewAnimationOptionRepeat オプションを明示的な繰り返し数の設定なしに渡した場合、アニメーションは無限に繰り返されます。アニメーションを有限回数繰り返したい場合、あなたのブロック内から、このメソッドを呼び出します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationStartDate:
+ setAnimationDuration:
+ setAnimationDelay:
+ setAnimationCurve:
+ setAnimationRepeatAutoreverses:
+ setAnimationBeginsFromCurrentState:




+ setAnimationRepeatAutoreverses:


アニメーションブロック内のアニメーションが自動的に自分自身を逆再生するかどうかを設定します。


宣言

<< SWIFT >>

class func setAnimationRepeatAutoreverses(_ repeatAutoreverses: Bool)

<< OBJECTIVE-C >>
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses


パラメーター

repeatAutoreverses自動逆再生を有効にするには YES を設定し、無効にするには NO にします。

議論

自動逆再生を有効にした場合、単一のアニメーションサイクルは、プロパティが、新しい値にアニメーション化される変更の後、元の値に戻ります。アニメーションの終了時に、影響を受けたビューは、新しい値を反映するために直ちに更新されます。アニメーションブロックの外から呼び出された場合、このメソッドは何もしません。デフォルトでは、autoreversing は無効です。


繰り返し回数(setAnimationRepeatCount: メソッドを使用して設定可能) で自動逆再生を組み合わせた場合、前後に古い値と新しい値の間に指定した回数アニメーションを作成できます。しかし、繰り返し回数がは完了サイクル数を示していることを覚えておいてください。2.0 のような整数値を指定すると、アニメーションは古い値で終了し、不快感を与えるかもしれない、新しい値を表示するために自分自身を更新するビューがすぐに続きます。アニメーションが新しい値(古い値の代わりに) で終了させたい場合は、繰り返し回数の値に 0.5 を追加します。これは、アニメーションに追加の半サイクルを追加します。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、 animateWithDuration:delay:options:animations:completion: メソッドを使用して、あなたのアニメーションとアニメーションのオプションを指定します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationStartDate:
+ setAnimationDuration:
+ setAnimationDelay:
+ setAnimationCurve:
+ setAnimationRepeatCount:
+ setAnimationBeginsFromCurrentState:




+ setAnimationBeginsFromCurrentState:


アニメーションが現在の状態から再生を開始すべきかどうかを設定します。


宣言

<< SWIFT >>

class func setAnimationBeginsFromCurrentState(_ fromCurrentState: Bool)

<< OBJECTIVE-C >>
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState


パラメーター

fromCurrentStateアニメーションが自分の現在の可視状態から始めるべきなら YES を指定します。それ以外の場合は、NO

議論

アニメーションが実行しているときに YES に設定した場合、実行中のアニメーションの現在のビューの位置は、新しいアニメーションの開始状態として使用されます。NO に設定した場合、新しいアニメーションが開始する前に、実行中のアニメーションは終了し、開始状態として最後のビューの位置を使用します。アニメーションが実行中でないか、アニメーションブロックの外側で呼び出された場合、このメソッドは何もしません。beginAnimations:context: クラスメソッドを開始するため使用し、アニメーションブロックを終了するため commitAnimations クラスメソッドを使用してください。デフォルト値は NO です。


このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、 animateWithDuration:delay:options:animations:completion: メソッドを使用して、あなたのアニメーションとアニメーションのオプションを指定します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ beginAnimations:context:
+ commitAnimations
+ setAnimationStartDate:
+ setAnimationDuration:
+ setAnimationDelay:
+ setAnimationCurve:
+ setAnimationRepeatCount:
+ setAnimationRepeatAutoreverses:




+ setAnimationTransition:forView:cache:


アニメーションブロックの間にビューに適用する移行を設定します。


宣言

<< SWIFT >>

class func setAnimationTransition(_ transition: UIViewAnimationTransition,
                          forView view: UIView,
                            cache cache: Bool)

<< OBJECTIVE-C >>
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition
                       forView:(UIView *)view
                         cache:(BOOL)cache


パラメーター

transitionview に適用すべき移行。可能な値は UIViewAnimationTransition に記載されています。
view移行を適用すべきビュー。
cacheYES なら、view の前と後の画像を一度にレンダリングし、アニメーションのフレームを作成するために使用されます。キャッシュはパフォーマンスを向上させますが、このパラメーターを YES に設定する場合は、移行中にビューまたはそのサブビューを更新してはいけません。ビューを更新し、そのサブビューは、キャッシュの動作を妨害し、ビューの内容がアニメーション中に誤ってレンダリング(または間違った場所に) されることがあります。移行が、ビューを更新するのを終了するまで待つ必要があります。

NO なら、ビューとその内容が著しくフレームレートに影響を与える可能性がある、移行アニメーションのフレームごとに更新する必要があります。

議論

移行中にビューの外観を変更したい場合は、例えばあるビューから別のビューへと移り、-以下のように、UIView のインスタンスのコンテナビューを使用します。


  1. アニメーションブロックを開始します。

  2. コンテナビューの移行を設定します。

  3. コンテナビューからサブビューを削除します。

  4. コンテナビューに新しいサブビューを追加します。

  5. アニメーションブロックをコミットします。

このメソッドの使用は、iOS 4.0 以降では推奨されません。代わりに、 animateWithDuration:delay:options:animations:completion: メソッドを使用して、移行を実行します。


利用可能

iOS 2.0 以降で利用可能。





+ areAnimationsEnabled


アニメーションが有効になっているかどうかを示すブール値を返します。


宣言

<< SWIFT >>

class func areAnimationsEnabled() -> Bool

<< OBJECTIVE-C >>
+ (BOOL)areAnimationsEnabled


戻り値

アニメーションが有効になっている場合は YES。それ以外の場合は、NO


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

+ setAnimationsEnabled:
+ performWithoutAnimation:



モーションエフェクトの使用


- addMotionEffect:


ビューにモーションエフェクトの適用を開始します。


宣言

<< SWIFT >>

func addMotionEffect(_ effect: UIMotionEffect)

<< OBJECTIVE-C >>
- (void)addMotionEffect:(UIMotionEffect *)effect


パラメーター

effectモーションエフェクト。

議論

システムは、現在の UIView アニメーションコンテキストを使用して、モーションエフェクト値への移行をアニメーション化します。モーションエフェクトのキーパス/値のペアは、ビューのプレゼンテーション層に適用されます。


利用可能

iOS 7.0 以降で利用可能。





motionEffects プロパティ


ビューのモーションエフェクトの配列。


宣言

<< SWIFT >>

var motionEffects: [UIMotionEffect]

<< OBJECTIVE-C >>
@property(copy, nonatomic) NSArray <__kindof UIMotionEffect *> *motionEffects


利用可能

iOS 7.0 以降で利用可能。





- removeMotionEffect:


ビューへのモーションエフェクトの適用を停止します。


宣言

<< SWIFT >>

func removeMotionEffect(_ effect: UIMotionEffect)

<< OBJECTIVE-C >>
- (void)removeMotionEffect:(UIMotionEffect *)effect


パラメーター

effectモーションエフェクト。

議論

任意の影響を受けたプレゼンテーション値は、現在の UIView アニメーションコンテキストを使用して、その除去後の値にアニメーションします。


利用可能

iOS 7.0 以降で利用可能。





状態を保存し、復元


restorationIdentifier プロパティ


ビューが状態の復元をサポートしているかどうかを決定する識別子。


宣言

<< SWIFT >>

var restorationIdentifier: String?

<< OBJECTIVE-C >>
@property(nonatomic, copy) NSString *restorationIdentifier


議論

このプロパティは、ビューの状態情報が保存されるべきかどうかを示します。また、復元プロセス中にビューを識別するために使用されます。このプロパティの値は、デフォルトでは nil で、ビューの状態を保存する必要がないことを示します。プロパティに文字列オブジェクトを割り当てると、所有するビューコントローラはビューが保存する、関連する状態情報を持っていることを知ることができます。


encodeRestorableStateWithCoder: 及び decodeRestorableStateWithCoder: メソッドを、保存して状態を復元するために実装するカスタムビューを実装している場合にのみ、このプロパティに値を割り当てて下さい。任意のビュー固有の状態情報を書き込むためにこれらのメソッドを使用し、その後そのデータは、それ以前の構成にビューを復元するために使用します。


重要: 単純に、このプロパティの値を設定しても、ビューが保存され、復元されることを確実にするのは十分ではありません。その所有するビューコントローラ、およびそのビューコントローラーの親ビューコントローラのすべては、また復元識別子を持っていなければなりません。保存と復元プロセスの詳細については、iOS 用アプリプログラミングガイド を参照してください。


利用可能

iOS 6.0 以降で利用可能。





- encodeRestorableStateWithCoder:


ビューの状態に関連した情報をコード化します。


宣言

<< SWIFT >>

func encodeRestorableStateWithCoder(_ coder: NSCoder)

<< OBJECTIVE-C >>
- (void)encodeRestorableStateWithCoder:(NSCoder *)coder


パラメーター

coderビューの状態をコード化するために使用するコーダオブジェクト。

議論

あなたのアプリが状態の保存をサポートしている場合、アプリの起動の間に保存すべき状態情報を持っている全てのビューのため、このメソッドをオーバーライドできます。現在の構成にビューを返すために必要なデータのみを保存する必要があります。ビューオブジェクト自体を保存せず、また、起動時に他の手段によって決定できる全てのデータを保存しないでください。


いくつかのビューは、状態情報を保存する必要があります。ほとんどのビューは、それらのビューコントローラからのデータを使用してちゃんと構成する必要があります。しかし、このメソッドは、そうでなければ、アプリの起動する間に失われることになる、ユーザが構成可能な状態を持つそれらのビューで利用可能です。


このメソッドの実装は、それが参照する必要のある他の復元可能ビューとビューコントローラオブジェクトをコード化できます。復元可能なビューまたはビューコントローラをコード化すると、コーダにそのオブジェクトの復元識別子を書き込みます。(その識別子は、オブジェクトの新しいバージョンを見つけるために復号処理中に使用されます。) ビューまたはビューコントローラがこのメソッドの独自のバージョンを定義している場合、オブジェクトは、独自の状態をコード化できるように、そのメソッドはまた、いくつかの点で呼び出されます。


ビューとビューコントローラとは別に、他のオブジェクトは、通常のシリアル化処理に従い、それらがコード化できる前に、NSCoding プロトコルを採用しなければなりません。このようなオブジェクトをコードするのは、直接アーカイブにオブジェクトの内容を埋め込みます。デコード処理中に、新たなオブジェクトが作成され、アーカイブからのデータで初期化されます。


親クラスにそれらの状態情報を保存する機会を与えるためにあなたの実装時にいくつかの時点で super を呼び出すことをお勧めします。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

– decodeRestorableStateWithCoder:




– decodeRestorableStateWithCoder:


ビューの状態関連情報を復号し、復元します。


宣言

<< SWIFT >>

func decodeRestorableStateWithCoder(_ coder: NSCoder)

<< OBJECTIVE-C >>
- (void)decodeRestorableStateWithCoder:(NSCoder *)coder


パラメーター

coderビューの状態を復号するために使用するコーダオブジェクト。

議論

アプリが状態の復元をサポートしている場合、また、encodeRestorableStateWithCoder: メソッドをオーバーライドするための全てのビューのために、このメソッドをオーバーライドする必要があります。このメソッドの実装は以前の構成にビューを復元するために、全ての保存された状態情報を使用する必要があります。あなたの encodeRestorableStateWithCoder:super を呼び出した場合、このメソッドは同様に、その実装のいくつかの時点で super を呼び出す必要があります。


利用可能

iOS 6.0 以降で利用可能。


以下も見よ

– encodeRestorableStateWithCoder:




ビューのスナップショットのキャプチャ


- snapshotViewAfterScreenUpdates:


現在のビューの内容に基づいて、スナップショットビューを返します。


宣言

<< SWIFT >>

func snapshotViewAfterScreenUpdates(_ afterUpdates: Bool) -> UIView

<< OBJECTIVE-C >>
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates


パラメーター

afterUpdates最近の変更が組み込まれた後、スナップショットが取られるべきかどうかを指定するブール値。最近の変更が含まれていない可能性がある、現在の状態のスクリーンをキャプチャするためには NO 値を渡します。

戻り値

現在のビューのレンダリングされた内容のスナップショットに基づいた、新しいビュー・オブジェクト。


議論

このメソッドは非常に効率的にビューの現在のレンダリングされた外観をキャプチャし、新しいスナップショットビューを構築するためにそれを使用します。あなたのアプリで、現在のビューの視覚スタンドインとして返されるビューを使用できます。たとえば、高価かもしれない大規模なビュー階層を更新するアニメーションのスナップショットビューを使用する場合があります。コンテンツが既にレンダリングされたコンテンツからキャプチャされているので、このメソッドは、ビューの現在の視覚的外観を反映しており、スケジュールされていたり進行中のアニメーションを反映するようには更新されていません。ただし、このメソッドを呼び出すのは、ビットマップ画像の中に自分自身で、現在のビューの内容をレンダリングしようとするよりも高速です。


返されたスナップショットは、ビュー・オブジェクトであるため、必要に応じて、それとそのレイヤオブジェクトを変更できます。ただし、スナップショットビューのレイヤーの contents プロパティを変更はできません。そうしようとすると静かに失敗します。現在のビューがまだレンダリングされていない場合、まだ画面上ではないかもしれませんので、スナップショットビューには可視コンテンツがありません。


新しいスナップショットを取得するために、以前生成されたスナップショットでこのメソッドを呼び出すことができます。例えば、(そのアルファ値のように) 以前のスナップショットのプロパティを変更し、それらの変更を含む新しいスナップショットが欲しい後、そうすることができます。


ぼかしのような、画像効果をスナップショットに適用したい場合、代わりに drawViewHierarchyInRect:afterScreenUpdates: を使用します。


利用可能

iOS 7.0 以降で利用可能。


以下も見よ

– drawViewHierarchyInRect:afterScreenUpdates:
– resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:



- resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:


伸縮可能インセットと、現在のビューの指定された内容に基づいて、スナップショットビューを返します。


宣言

<< SWIFT >>

func resizableSnapshotViewFromRect(_ rect: CGRect,
                afterScreenUpdates afterUpdates: Bool,
                     withCapInsets capInsets: UIEdgeInsets) -> UIView

<< OBJECTIVE-C >>
- (UIView *)resizableSnapshotViewFromRect:(CGRect)rect
                       afterScreenUpdates:(BOOL)afterUpdates
                            withCapInsets:(UIEdgeInsets)capInsets


パラメーター

rectキャプチャーしたいビューの一部。長方形は、現在のビューの座標空間の境界でなければなりません。
afterUpdates最近の変更が組み込まれた後、スナップショットが取られるべきかどうかを指定するブール値。最新の変更を含まない可能性がある、現在の状態のスクリーンをキャプチャしたい場合は値 NO を渡します。
capInsets返されたビューのコンテンツの伸縮可能部分を定義する端のインセット。返されたビューのコンテンツ伸縮可能な領域を持つようにしたくない場合は、UIEdgeInsetsZero を指定できます。

戻り値

現在のビューのレンダリングしたコンテンツのスナップショットを含む、新しいビュー・オブジェクト。


議論

このメソッドは非常に効率的に、ビューの現在のレンダリングされた外観をキャプチャし、伸縮可能インセットを持つ新しいスナップショットビューを構築するためにそれを使用します。あなたのアプリで、現在のビューの視覚的代役として返されるビューを使用できます。たとえば、高価かもしれない大規模なビュー階層を更新するアニメーションのスナップショットビューを使用する場合があります。コンテンツは、既にレンダリングされたコンテンツからキャプチャされているので、このメソッドは、ビューの現在の視覚的外観を反映しており、スケジュールされたり進行中のアニメーションを反映するようには更新されていません。ただし、このメソッドを呼び出すのは、自分自身でビットマップ画像の中に、現在のビューのコンテンツをレンダリングしようとするよりも高速です。


返されたスナップショットは、ビュー・オブジェクトであるため、必要に応じて、そのレイヤオブジェクトやそれ自体を変更できます。ただし、スナップショットビューのレイヤーの contents プロパティは変更できません。そうしようとすると黙って失敗します。現在のビューがまだレンダリングされていない場合、それはまだ、スクリーン上ではないかもしれませんので、スナップショットビューには可視コンテンツがありません。


新しいスナップショットを取得するために、以前に生成されたスナップショットでこのメソッドを呼び出すことができます。例えば、あなたが(そのアルファ値のように) 以前のスナップショットのプロパティを変更し、それらの変更を含む新しいスナップショットが欲しい後、そうすることができます。


スナップショットに、ぼかしのような、グラフィカルな効果を適用したい場合は、代わりに drawViewHierarchyInRect:afterScreenUpdates: メソッドを使用して下さい。


capInsets パラメータにゼロ以外の端インセットを指定した場合、それらの値は返されたスナップショットの伸縮可能コンテンツ領域を決定します。


利用可能

iOS 7.0 以降で利用可能。


以下も見よ

– drawViewHierarchyInRect:afterScreenUpdates:
– resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:
contentStretch




- drawViewHierarchyInRect:afterScreenUpdates:


現在のコンテキストに、スクリーン上で見える完全なビュー階層のスナップショットをレンダリングします。


宣言

<< SWIFT >>

func drawViewHierarchyInRect(_ rect: CGRect,
          afterScreenUpdates afterUpdates: Bool) -> Bool

<< OBJECTIVE-C >>
- (BOOL)drawViewHierarchyInRect:(CGRect)rect
             afterScreenUpdates:(BOOL)afterUpdates


パラメーター

rectビューのローカル座標系(境界) で指定される長方形。
afterUpdates最近の変更が組み込まれた後、スナップショットがレンダリングされるべきかどうかを示すブール値。最新の変更を含んでいない可能性がある、ビュー階層の現在の状態のスナップショットを、レンダリングしたい場合は値 NO を指定してください。

戻り値

スナップショットが完全な場合 YES を返し、またはスナップショットが、階層内の任意のビューのイメージデータを欠いている場合は NO


議論

ビューのスナップショットが、ぼかしのような、グラフィカルな効果を適用したい場合は、このメソッドを使用します。このメソッドは、snapshotViewAfterScreenUpdates: ほど高速ではありません。


利用可能

iOS 7.0 以降で利用可能。


以下も見よ

– snapshotViewAfterScreenUpdates:




実行時にビューの識別


tag プロパティ


アプリケーション内でビューオブジェクトを識別するために使用できる整数。


宣言

<< SWIFT >>

var tag: Int

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


議論

デフォルト値は 0 です。この tag の値を設定し、後でビューを識別するために、その値を使用できます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– viewWithTag:




– viewWithTag:


指定された値と一致する tag のビューを返します。


宣言

<< SWIFT >>

func viewWithTag(_ tag: Int) -> UIView?

<< OBJECTIVE-C >>
- (__kindof UIView *)viewWithTag:(NSInteger)tag


パラメーター

tag検索すべき tag の値。

戻り値

その tag プロパティが、tag パラメータの値と一致する、受信者の階層内のビュー。


議論

このメソッドは、指定したビューの現在のビューとそのサブビューのすべてを検索します。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

tag




ビュー座標系間の変換


- convertPoint:toView:


受信者の座標系から指定されたビューのそれへポイントを変換します。


宣言

<< SWIFT >>

func convertPoint(_ point: CGPoint,
           toView view: UIView?) -> CGPoint

<< OBJECTIVE-C >>
- (CGPoint)convertPoint:(CGPoint)point
                 toView:(UIView *)view


パラメーター

point受信者のローカル座標系(境界) で指定された点。
viewその中の座標系の point に、変換すべきビュー。viewnil の場合、このメソッドは代わりに、ウィンドウベースの座標系に変換します。それ以外の場合、view と受信者の両方とも同じ UIWindow オブジェクトに属していなければなりません。

戻り値

view の座標系に変換される点(point)。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– convertPoint:fromView:
– convertRect:toView:
– convertRect:fromView:




- convertPoint:fromView:


与えられたビューの座標系から受信者のそれにポイントを変換します。


宣言

<< SWIFT >>

func convertPoint(_ point: CGPoint,
         fromView view: UIView?) -> CGPoint

<< OBJECTIVE-C >>
- (CGPoint)convertPoint:(CGPoint)point
               fromView:(UIView *)view


パラメーター

pointview のローカル座標系(境界) で指定されたポイント。
viewその座標系で point のあるビュー。viewnil の場合、このメソッドは代わりに、ウィンドウベースの座標に変換します。それ以外の場合は、view と受信者の両方とも同じ UIWindow オブジェクトに属していなければなりません。

戻り値

受信者のローカル座標系(境界) に変換されたポイント。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– convertPoint:toView:
– convertRect:toView:
– convertRect:fromView:




- convertRect:toView:


受信者の座標系から別のビューのそれへと長方形を変換します。


宣言

<< SWIFT >>

func convertRect(_ rect: CGRect,
          toView view: UIView?) -> CGRect

<< OBJECTIVE-C >>
- (CGRect)convertRect:(CGRect)rect
               toView:(UIView *)view


パラメーター

rect受信者のローカル座標系(境界) で指定される長方形。
view変換操作の対象であるビュー。viewnil の場合、このメソッドは代わりに、ウィンドウベースの座標に変換します。それ以外の場合は、view と受信者の両方とも同じ UIWindow オブジェクトに属していなければなりません。

戻り値

変換された長方形。


利用可能

iOS 2.0 以降で利用可能。


– convertPoint:toView:
– convertPoint:fromView:
– convertRect:fromView:




– convertRect:fromView:


別のビューの座標系から受信者のそれへと長方形を変換します。


宣言

<< SWIFT >>

func convertRect(_ rect: CGRect,
        fromView view: UIView?) -> CGRect

<< OBJECTIVE-C >>
- (CGRect)convertRect:(CGRect)rect
             fromView:(UIView *)view


パラメーター

rectview の、ローカル座標系で指定した長方形。
viewその座標系で長方形のあるビュー。viewnil の場合、このメソッドは代わりに、ウィンドウベースの座標に変換します。それ以外の場合は、view と受信者の両方とも同じ UIWindow オブジェクトに属していなければなりません。

戻り値

変換されrた長方形。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– convertPoint:toView:
– convertPoint:fromView:
– convertRect:toView:




ビューでのヒットテスト


- hitTest:withEvent:


指定された点を含む(自身を含む) ビュー階層内の受信者の最も遠い子孫を返します。


宣言

<< SWIFT >>

func hitTest(_ point: CGPoint,
   withEvent event: UIEvent?) -> UIView?

<< OBJECTIVE-C >>
- (UIView *)hitTest:(CGPoint)point
          withEvent:(UIEvent *)event


パラメーター

point受信者のローカル座標系(境界) で指定された点。
eventこのメソッドの呼び出しを許可するイベント。イベント処理コードの外部からこのメソッドを呼び出している場合は、nil を指定できます。

戻り値

最も遠い子孫で、現在のビューである point を含むビューオブジェクト。ポイントが受信者のビュー階層の完全に外側にある場合は nil を返します。


議論

タッチイベントを受信する必要があるサブビューを決定するためにこのメソッドは各サブビューの pointInside:withEvent: メソッドを呼び出すことによって、ビュー階層を横断します。pointInside:withEvent:YES を返す場合、指定された点を含む最前面のビューが見つかるまで、サブビューの階層は、同様に横断されます。ビューがポイントを含んでいない場合は、ビュー階層の分岐は無視されます。めったにこのメソッドを自分で呼び出す必要はありませんが、サブビューからのタッチイベントを隠すためにオーバーライドする可能性があります。


このメソッドは、無効なユーザーの相互作用を持っている、または 0.01 よりもアルファレベルなものを持っている、隠されているビューオブジェクトを無視します。ヒットを決定する場合は、このメソッドはビューのコンテンツを考慮に入れることはありません。したがってビューは、まだ指定された点が、そのビューのコンテンツの透明部分にたとえあっても返されることができます。


受信者の境界の外側にある点は、それらが実際に受信者のサブビューの一つの内側にある場合であっても、ヒットとして報告されません。現在のビューの clipsToBounds プロパティが NO に設定され、影響を受けたサブビューが、ビューの境界を越えて延びている場合に発生する可能性があります。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– pointInside:withEvent:




– pointInside:withEvent:


受信者が、指定された点を含んでいるかどうかを示すブール値を返します。


宣言

<< SWIFT >>

func pointInside(_ point: CGPoint,
       withEvent event: UIEvent?) -> Bool

<< OBJECTIVE-C >>
- (BOOL)pointInside:(CGPoint)point
          withEvent:(UIEvent *)event


パラメーター

point受信者のローカル座標系(境界) 内にある点。
eventこのメソッドの呼び出しを許可するイベント。イベント処理コードの外部からこのメソッドを呼び出している場合は、nil を指定できます。

戻り値

point が、受信者の境界内にある場合 YES。それ以外の場合は、NO


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– hitTest:withEvent:




ビューの編集セッションの終了


- endEditing:


ビュー(またはその埋め込まれたテキストフィールドの一つ) に、ファーストレスポンダの状態をやめさせます。


宣言

<< SWIFT >>

func endEditing(_ force: Bool) -> Bool

<< OBJECTIVE-C >>
- (BOOL)endEditing:(BOOL)force


パラメーター

forceそうすることを望んでいるかどうかにかかわらず、ファーストレスポンダを強制的にやめさせるためには YES を指定します。

戻り値

ビューがファーストレスポンダの状態をやめた場合 YES、またはしなかった場合 NO


議論

このメソッドは、現在のビューと現在ファーストレスポンダであるテキストフィールドのそのサブビューの階層を調べます。一つが見つかった場合、ファーストレスポンダをやめるために、そのテキストフィールドを要求します。 force パラメータが YES に設定されている場合は、テキストフィールドは要求されても、決してありません。やめるのを余儀なくされます。


利用可能

iOS 2.0 以降で利用可能。





ビュー関連の変化を監視


- didAddSubview:


サブビューが追加されたとビューに伝えます。


宣言

<< SWIFT >>

func didAddSubview(_ subview: UIView)

<< OBJECTIVE-C >>
- (void)didAddSubview:(UIView *)subview


パラメーター

subviewサブビューとして追加されたビュー。

議論

このメソッドのデフォルトの実装は何もしません。サブクラスは、サブビューが追加されると、追加のアクションを実行するために、これをオーバーライドできます。このメソッドは、関連するビューメソッドのいずれかを使用してサブビューを追加するのに応じて呼び出されます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– willRemoveSubview:
- addSubview:
- insertSubview:atIndex:
- insertSubview:aboveSubview:
– insertSubview:belowSubview:




– willRemoveSubview:


サブビューが削除されようとしていると、ビューに伝えます。


宣言

<< SWIFT >>

func willRemoveSubview(_ subview: UIView)

<< OBJECTIVE-C >>
- (void)willRemoveSubview:(UIView *)subview


パラメーター

subview削除されようとしているサブビュー。

議論

このメソッドのデフォルトの実装は何もしません。サブクラスは、サブビューが削除されるたびに追加のアクションを実行するために、これをオーバーライドできます。サブビューのスーパービューが変化した時、またはサブビューが完全にビュー階層から削除された時にこのメソッドが呼び出されます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– removeFromSuperview
– didAddSubview:




- willMoveToSuperview:


そのスーパービューが、指定されたスーパーに変更しようとしているとビューに伝えます。


宣言

<< SWIFT >>

func willMoveToSuperview(_ newSuperview: UIView?)

<< OBJECTIVE-C >>
- (void)willMoveToSuperview:(UIView *)newSuperview


パラメーター

newSuperview受信者の新しいスーパービューになろうとしているビューオブジェクト。このオブジェクトは nil であってもよいです。

議論

このメソッドのデフォルトの実装は何もしません。サブクラスは、スーパービューが変更される度に、追加のアクションを実行するために、これをオーバーライドできます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– didMoveToSuperview




– didMoveToSuperview


そのスーパービューが変更した事を、そのビューに伝えます。


宣言

<< SWIFT >>

func didMoveToSuperview()

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


議論

このメソッドのデフォルトの実装は何もしません。サブクラスは、スーパービューの変更のたびに追加のアクションを実行するために、これをオーバーライドできます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– willMoveToSuperview:




– willMoveToWindow:


そのウィンドウオブジェクトが変更しようとしているとビューに伝えます。


宣言

<< SWIFT >>

func willMoveToWindow(_ newWindow: UIWindow?)

<< OBJECTIVE-C >>
- (void)willMoveToWindow:(UIWindow *)newWindow


パラメーター

newWindow受信者の新しいビュー階層のルートになろうとしているウィンドウオブジェクト。このパラメータは nil であってもよいです。

議論

このメソッドのデフォルトの実装は何もしません。サブクラスは、ウィンドウが変更するたびに、追加のアクションを実行するために、これをオーバーライドできます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

– didMoveToWindow




– didMoveToWindow


そのウィンドウオブジェクトが変更されたとビューに伝えます。


宣言

<< SWIFT >>

func didMoveToWindow()

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


議論

このメソッドのデフォルトの実装は何もしません。サブクラスは、ウィンドウが変更する度に追加アクションを実行するため、これをオーバーライドできます。


window プロパティは、このメソッドが呼び出されている時によって nil とすることができ、受信者が現在どのウィンドウにも存在しないことを示します。受信機はちょうどそのスーパービューから削除されたときや、受信者は、単に window に付けられていないスーパービューに追加されたとき、これが発生します。それらが興味がない場合は、このメソッドのオーバーライドは、このようなケースを無視することを選択できます。


利用可能

iOS 2.0 以降で利用可能。


以下も見よ

willMoveToWindow:




監視フォーカス


- canBecomeFocused


それがフォーカスされるのは現在可能であるかどうかビューに尋ねます。


宣言

<< SWIFT >>

func canBecomeFocused() -> Bool

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


戻り値

ビューがフォーカスされることができれば YES、そうでない場合は NO


議論

このメソッドのデフォルト値は NO です。ビューがフォーカスされることが可能である場合、このメソッドは、フォーカス・エンジンに知らせます。ビューが YES を返した場合でも時には、ビューは以下の理由により、フォーカス可能ではないかもしれません。


利用可能

iOS 9.0 以降で利用可能。





+ inheritedAnimationDuration


現在のアニメーションの継承された継続期間を返します。


宣言

<< SWIFT >>

class func inheritedAnimationDuration() -> NSTimeInterval

<< OBJECTIVE-C >>
+ (NSTimeInterval)inheritedAnimationDuration


戻り値

現在のアニメーションの継続時間。


議論

このメソッドは、UIView のアニメーションブロック内で呼び出された場合、ゼロ以外の値を返すだけです。


利用可能

iOS 9.0 以降で利用可能。





focused プロパティ


項目が現在フォーカスされているかどうかを示すブール値。(読み取り専用)


宣言

<< SWIFT >>

var focused: Bool { get }

<< OBJECTIVE-C >>
@property(readonly, nonatomic, getter=isFocused) BOOL focused


議論

これは、アイテムが UIScreen クラス内の focusedView プロパティー内の値と等しいかどうかをチェックするコンビニエンスプロパティです。


利用可能

iOS 9.0 以降で利用可能。





データ型


UIViewAnimationOptions


ブロックオブジェクトを使用してビューをアニメーション化するためのオプション。


宣言

<< SWIFT >>

struct UIViewAnimationOptions : OptionSetType {
    init(rawValue rawValue: UInt)
    static var LayoutSubviews: UIViewAnimationOptions { get }
    static var AllowUserInteraction: UIViewAnimationOptions { get }
    static var BeginFromCurrentState: UIViewAnimationOptions { get }
    static var Repeat: UIViewAnimationOptions { get }
    static var Autoreverse: UIViewAnimationOptions { get }
    static var OverrideInheritedDuration: UIViewAnimationOptions { get }
    static var OverrideInheritedCurve: UIViewAnimationOptions { get }
    static var AllowAnimatedContent: UIViewAnimationOptions { get }
    static var ShowHideTransitionViews: UIViewAnimationOptions { get }
    static var OverrideInheritedOptions: UIViewAnimationOptions { get }
    static var CurveEaseInOut: UIViewAnimationOptions { get }
    static var CurveEaseIn: UIViewAnimationOptions { get }
    static var CurveEaseOut: UIViewAnimationOptions { get }
    static var CurveLinear: UIViewAnimationOptions { get }
    static var TransitionNone: UIViewAnimationOptions { get }
    static var TransitionFlipFromLeft: UIViewAnimationOptions { get }
    static var TransitionFlipFromRight: UIViewAnimationOptions { get }
    static var TransitionCurlUp: UIViewAnimationOptions { get }
    static var TransitionCurlDown: UIViewAnimationOptions { get }
    static var TransitionCrossDissolve: UIViewAnimationOptions { get }
    static var TransitionFlipFromTop: UIViewAnimationOptions { get }
    static var TransitionFlipFromBottom: UIViewAnimationOptions { get }
}

<< OBJECTIVE-C >>
enum {
   UIViewAnimationOptionLayoutSubviews            = 1 <<  0,
   UIViewAnimationOptionAllowUserInteraction      = 1 <<  1,
   UIViewAnimationOptionBeginFromCurrentState     = 1 <<  2,
   UIViewAnimationOptionRepeat                    = 1 <<  3,
   UIViewAnimationOptionAutoreverse               = 1 <<  4,
   UIViewAnimationOptionOverrideInheritedDuration = 1 <<  5,
   UIViewAnimationOptionOverrideInheritedCurve    = 1 <<  6,
   UIViewAnimationOptionAllowAnimatedContent      = 1 <<  7,
   UIViewAnimationOptionShowHideTransitionViews   = 1 <<  8,
   UIViewAnimationOptionOverrideInheritedOptions  = 1 <<  9,
   
   UIViewAnimationOptionCurveEaseInOut            = 0 << 16,
   UIViewAnimationOptionCurveEaseIn               = 1 << 16,
   UIViewAnimationOptionCurveEaseOut              = 2 << 16,
   UIViewAnimationOptionCurveLinear               = 3 << 16,
   
   UIViewAnimationOptionTransitionNone            = 0 << 20,
   UIViewAnimationOptionTransitionFlipFromLeft    = 1 << 20,
   >UIViewAnimationOptionTransitionFlipFromRight  = 2 << 20,
   UIViewAnimationOptionTransitionCurlUp          = 3 << 20,
   UIViewAnimationOptionTransitionCurlDown        = 4 << 20,
   UIViewAnimationOptionTransitionCrossDissolve   = 5 << 20,
   UIViewAnimationOptionTransitionFlipFromTop     = 6 << 20,
   UIViewAnimationOptionTransitionFlipFromBottom  = 7 << 20,
};
typedef NSUInteger UIViewAnimationOptions;


定数

Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 4.0 以降で利用可能。





UIViewAnimationCurve


サポートされているアニメーションカーブを指定します。


宣言

<< SWIFT >>

enum UIViewAnimationCurve : Int {
    case EaseInOut
    case EaseIn
    case EaseOut
    case Linear
}

<< OBJECTIVE-C >>
typedef enum {
   UIViewAnimationCurveEaseInOut,
   UIViewAnimationCurveEaseIn,
   UIViewAnimationCurveEaseOut,
   UIViewAnimationCurveLinear
} UIViewAnimationCurve;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 2.0 以降で利用可能。





UIViewContentMode


ビューが、そのコンテンツのサイズを変更する調整方法を指定するオプション。


宣言

<< SWIFT >>

enum UIViewContentMode : Int {
    case ScaleToFill
    case ScaleAspectFit
    case ScaleAspectFill
    case Redraw
    case Center
    case Top
    case Bottom
    case Left
    case Right
    case TopLeft
    case TopRight
    case BottomLeft
    case BottomRight
}

<< OBJECTIVE-C >>
typedef enum {
   UIViewContentModeScaleToFill,
   UIViewContentModeScaleAspectFit,
   UIViewContentModeScaleAspectFill,
   UIViewContentModeRedraw,
   UIViewContentModeCenter,
   UIViewContentModeTop,
   UIViewContentModeBottom,
   UIViewContentModeLeft,
   UIViewContentModeRight,
   UIViewContentModeTopLeft,
   UIViewContentModeTopRight,
   UIViewContentModeBottomLeft,
   UIViewContentModeBottomRight,
} UIViewContentMode;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 2.0 以降で利用可能。





UIViewTintAdjustmentMode


ビューの tint(色合い) 調整モード。


宣言

<< SWIFT >>

enum UIViewTintAdjustmentMode : Int {
    case Automatic
    case Normal
    case Dimmed
}

<< OBJECTIVE-C >>
typedef enum {
   UIViewTintAdjustmentModeAutomatic,
   UIViewTintAdjustmentModeNormal,
   UIViewTintAdjustmentModeDimmed,
} UIViewTintAdjustmentMode;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 7.0 以降で利用可能。





UISystemAnimation


アニメーションが完了した時、階層からビューを削除するオプション。


宣言

<< SWIFT >>

enum UISystemAnimation : UInt {
    case Delete
}

<< OBJECTIVE-C >>
typedef enum{
   UISystemAnimationDelete,
} UISystemAnimation;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 7.0 以降で利用可能。





UIViewAutoresizing


ビューの自動サイズ変更のためのオプション。


宣言

<< SWIFT >>

struct UIViewAutoresizing : OptionSetType {
    init(rawValue rawValue: UInt)
    static var None: UIViewAutoresizing { get }
    static var FlexibleLeftMargin: UIViewAutoresizing { get }
    static var FlexibleWidth: UIViewAutoresizing { get }
    static var FlexibleRightMargin: UIViewAutoresizing { get }
    static var FlexibleTopMargin: UIViewAutoresizing { get }
    static var FlexibleHeight: UIViewAutoresizing { get }
    static var FlexibleBottomMargin: UIViewAutoresizing { get }
}

<< OBJECTIVE-C >>
enum {
   UIViewAutoresizingNone                 = 0,
   UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
   UIViewAutoresizingFlexibleWidth        = 1 << 1,
   UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
   UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
   UIViewAutoresizingFlexibleHeight       = 1 << 4,
   UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 2.0 以降で利用可能。





UIViewAnimationTransition


アニメーションブロックオブジェクト内で使用するためのアニメーションの移行オプション。


宣言

<< SWIFT >>

enum UIViewAnimationTransition : Int {
    case None
    case FlipFromLeft
    case FlipFromRight
    case CurlUp
    case CurlDown
}

<< OBJECTIVE-C >>
typedef enum {
   UIViewAnimationTransitionNone,
   UIViewAnimationTransitionFlipFromLeft,
   UIViewAnimationTransitionFlipFromRight,
   UIViewAnimationTransitionCurlUp,
   UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 2.0 以降で利用可能。





UIViewKeyframeAnimationOptions


animateKeyframesWithDuration:delay:options:animations:completion: メソッドで使用されるキーフレームアニメーションのオプション。


宣言

<< SWIFT >>

struct UIViewKeyframeAnimationOptions : OptionSetType {
    init(rawValue rawValue: UInt)
    static var LayoutSubviews: UIViewKeyframeAnimationOptions { get }
    static var AllowUserInteraction: UIViewKeyframeAnimationOptions { get }
    static var BeginFromCurrentState: UIViewKeyframeAnimationOptions { get }
    static var Repeat: UIViewKeyframeAnimationOptions { get }
    static var Autoreverse: UIViewKeyframeAnimationOptions { get }
    static var OverrideInheritedDuration: UIViewKeyframeAnimationOptions { get }
    static var OverrideInheritedOptions: UIViewKeyframeAnimationOptions { get }
    static var CalculationModeLinear: UIViewKeyframeAnimationOptions { get }
    static var CalculationModeDiscrete: UIViewKeyframeAnimationOptions { get }
    static var CalculationModePaced: UIViewKeyframeAnimationOptions { get }
    static var CalculationModeCubic: UIViewKeyframeAnimationOptions { get }
    static var CalculationModeCubicPaced: UIViewKeyframeAnimationOptions { get }
}

<< OBJECTIVE-C >>
typedef enum {
   UIViewKeyframeAnimationOptionLayoutSubviews            = UIViewAnimationOptionLayoutSubviews,
   UIViewKeyframeAnimationOptionAllowUserInteraction      = UIViewAnimationOptionAllowUserInteraction,
   UIViewKeyframeAnimationOptionBeginFromCurrentState     = UIViewAnimationOptionBeginFromCurrentState,
   UIViewKeyframeAnimationOptionRepeat                    = UIViewAnimationOptionRepeat,
   UIViewKeyframeAnimationOptionAutoreverse               = UIViewAnimationOptionAutoreverse,
   UIViewKeyframeAnimationOptionOverrideInheritedDuration =
UIViewAnimationOptionOverrideInheritedDuration, UIViewKeyframeAnimationOptionOverrideInheritedOptions =
UIViewAnimationOptionOverrideInheritedOptions, UIViewKeyframeAnimationOptionCalculationModeLinear = 0 << 9, UIViewKeyframeAnimationOptionCalculationModeDiscrete = 1 << 9, UIViewKeyframeAnimationOptionCalculationModePaced = 2 << 9, UIViewKeyframeAnimationOptionCalculationModeCubic = 3 << 9, UIViewKeyframeAnimationOptionCalculationModeCubicPaced = 4 << 9 } UIViewKeyframeAnimationOptions;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 7.0 以降で利用可能。





UILayoutConstraintAxis


オブジェクト間の水平または垂直レイアウト制約を指定するキー。


宣言

<< SWIFT >>

enum UILayoutConstraintAxis : Int {
    case Horizontal
    case Vertical
}

<< OBJECTIVE-C >>
enum {
   UILayoutConstraintAxisHorizontal = 0,
   UILayoutConstraintAxisVertical = 1
};
typedef NSInteger UILayoutConstraintAxis;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 6.0 以降で利用可能。





Fitting Size


systemLayoutSizeFittingSize: メソッドで使用されるビューの fitting オプション。


宣言

<< SWIFT >>

let UILayoutFittingCompressedSize: CGSize
let UILayoutFittingExpandedSize: CGSize

<< OBJECTIVE-C >>
const CGSize UILayoutFittingCompressedSize;
const CGSize UILayoutFittingExpandedSize;


定数





UIView 固有の計量定数


宣言

<< SWIFT >>

let UIViewNoIntrinsicMetric: CGFloat

<< OBJECTIVE-C >>
const CGFloat UIViewNoIntrinsicMetric;


定数





UISemanticContentAttribute


左から右へと、右から左へのレイアウトを切り替える時、ビューを反転する必要があるかどうかを決定するのに使用されるビューの内容の意味説明。


宣言

<< SWIFT >>

enum UISemanticContentAttribute : Int {
    case Unspecified
    case Playback
    case Spatial
    case ForceLeftToRight
    case ForceRightToLeft
}

<< OBJECTIVE-C >>
typedef enum : NSInteger {
   UISemanticContentAttributeUnspecified = 0,
   UISemanticContentAttributePlayback,
   UISemanticContentAttributeSpatial,
   UISemanticContentAttributeForceLeftToRight,
   UISemanticContentAttributeForceRightToLeft
} UISemanticContentAttribute;


定数


Import 文

<< OBJECTIVE-C >>

@import UIKit;


<< SWIFT >>

import UIKit


利用可能

iOS 9.0 以降で利用可能。





次の章
目次
Xcode の新機能

  • UIView
  • 概観
  • ビューの作成
    ビューの描画サイクル
    アニメーション
    スレッド化の考慮事項
  • サブクラス化における注意事項
  • オーバーライドするべきメソッド
    サブクラス化の代替方法
  • タスク
  • ビュー・オブジェクトの初期化
  • initWithFrame: 指定イニシャライザ
  • ビューの外観の構成
  • backgroundColor プロパティ
    hidden プロパティ
    alpha プロパティ
    opaque プロパティ
    tintColor プロパティ
    tintAdjustmentMode プロパティ
    clipsToBounds プロパティ
    clearsContextBeforeDrawing プロパティ
    maskView プロパティ
    layerClass
    layer プロパティ
  • イベント関連動作の構成
  • userInteractionEnabled プロパティ
    multipleTouchEnabled プロパティ
    exclusiveTouch プロパティ
  • 境界とフレームの長方形の構成
  • frame プロパティ
    bounds プロパティ
    center プロパティ
    transform プロパティ
  • ビュー階層の管理
  • superview プロパティ
    subviews プロパティ
    window プロパティ
    addSubview:
    bringSubviewToFront:
    sendSubviewToBack:
    removeFromSuperview
    insertSubview:atIndex:
    insertSubview:aboveSubview:
    insertSubview:belowSubview:
    exchangeSubviewAtIndex: withSubviewAtIndex:
    isDescendantOfView:
  • サイズ変更動作の構成
  • autoresizingMask プロパティ
    autoresizesSubviews プロパティ
    contentMode プロパティ
    contentStretch プロパティ
    sizeThatFits:
    sizeToFit
  • サブビューのレイアウト
  • layoutSubviews
    setNeedsLayout
    layoutIfNeeded
    requiresConstraintBasedLayout
    translatesAutoresizingMaskInto
    Constraints プロパティ

  • レイアウトのアンカーを使用して制約の作成
  • bottomAnchor プロパティ
    centerXAnchor プロパティ
    centerYAnchor プロパティ
    firstBaselineAnchor プロパティ
    heightAnchor プロパティ
    lastBaselineAnchor プロパティ
    leadingAnchor プロパティ
    leftAnchor プロパティ
    rightAnchor プロパティ
    topAnchor プロパティ
    trailingAnchor プロパティ
    widthAnchor プロパティ
  • ビューの制約の管理
  • constraints プロパティ
    addConstraint:
    addConstraints:
    removeConstraint:
    removeConstraints:
  • レイアウトガイドでの作業
  • addLayoutGuide:
    layoutGuides プロパティ
    layoutMarginsGuide プロパティ
    readableContentGuide プロパティ
    removeLayoutGuide:
  • 自動レイアウトでの測定
  • systemLayoutSizeFittingSize:
    systemLayoutSizeFittingSize:
    withHorizontalFittingPriority:
    verticalFittingPriority:

    intrinsicContentSize
    invalidateIntrinsicContentSize
    contentCompressionResistance
    PriorityForAxis:

    setContentCompressionResistance
    Priority:forAxis:

    contentHuggingPriorityForAxis:
    setContentHuggingPriority:forAxis:
  • 自動レイアウトで整列ビュー
  • alignmentRectForFrame:
    frameForAlignmentRect:
    alignmentRectInsets
    viewForBaselineLayout
    viewForFirstBaselineLayout プロパティ
    viewForBaselineLayout プロパティ
  • 自動レイアウトをトリガする
  • needsUpdateConstraints
    setNeedsUpdateConstraints
    updateConstraints
    updateConstraintsIfNeeded
  • 自動レイアウトのデバッグ
  • constraintsAffectingLayoutForAxis:
    hasAmbiguousLayout
    exerciseAmbiguityInLayout
  • ユーザーインターフェイスの方向の管理
  • semanticContentAttribute プロパティ
    userInterfaceLayoutDirectionFor
    SemanticContentAttribute:

  • コンテンツの余白の構成
  • layoutMargins プロパティ
    preservesSuperviewLayoutMargins プロパティ
    layoutMarginsDidChange
  • ビューの描画と更新
  • drawRect:
    setNeedsDisplay
    setNeedsDisplayInRect:
    contentScaleFactor プロパティ
    tintColorDidChange
  • ビューコンテンツの印刷書式
  • viewPrintFormatter
    drawRect:forViewPrintFormatter:
  • ジェスチャ認識装置の管理
  • addGestureRecognizer:
    removeGestureRecognizer:
    gestureRecognizers プロパティ
    gestureRecognizerShouldBegin:
  • ブロックオブジェクトでビューのアニメーション化
  • animateWithDuration:delay:options :animations:completion:
    animateWithDuration:animations :completion:
    animateWithDuration:animations:
    transitionWithView:duration :options:animations:completion:
    transitionFromView:toView :duration :options:completion:
    animateKeyframesWithDuration:delay :options:animations:completion:
    addKeyframeWithRelativeStartTime :relativeDuration:animations:
    performSystemAnimation:onViews :options:animations:completion:
    animateWithDuration:delay :usingSpringWithDamping :initialSpringVelocity:options :animations:completion:
    performWithoutAnimation:
  • ビューのアニメーション化
  • beginAnimations:context:
    commitAnimations
    setAnimationStartDate:
    setAnimationsEnabled:
    setAnimationDelegate:
    setAnimationWillStartSelector:
    setAnimationDidStopSelector:
    setAnimationDuration:
    setAnimationDelay:
    setAnimationCurve:
    setAnimationRepeatCount:
    setAnimationRepeatAutoreverses:
    setAnimationBeginsFromCurrentState:
    setAnimationTransition:forView:cache:
    areAnimationsEnabled
  • モーションエフェクトの使用
  • addMotionEffect:
    motionEffects プロパティ
    removeMotionEffect:
  • 状態を保存し、復元
  • restorationIdentifier プロパティ
    encodeRestorableStateWithCoder:
    decodeRestorableStateWithCoder:
  • ビューのスナップショットのキャプチャ
  • snapshotViewAfterScreenUpdates:
    resizableSnapshotViewFromRect :afterScreenUpdates:withCapInsets:
    drawViewHierarchyInRect :afterScreenUpdates:
  • 実行時にビューの識別
  • tag プロパティ
    viewWithTag:
  • ビュー座標系間の変換
  • convertPoint:toView:
    convertPoint:fromView:
    convertRect:toView:
    convertRect:fromView:
  • ビューでのヒットテスト
  • hitTest:withEvent:
    pointInside:withEvent:
  • ビューの編集セッションの終了
  • endEditing:
  • ビュー関連の変化を監視
  • didAddSubview:
    willRemoveSubview:
    willMoveToSuperview:
    didMoveToSuperview
    willMoveToWindow:
    didMoveToWindow
  • 監視フォーカス
  • canBecomeFocused
    inheritedAnimationDuration
    focused プロパティ
  • 定数
  • UIViewAnimationOptions
    UIViewAnimationCurve
    UIViewKeyframeAnimationOptions
    UIViewContentMode
    UILayoutConstraintAxis
    UIViewTintAdjustmentMode
    UISystemAnimation
    Fitting Size
    UIView 固有の計量定数
    UIViewAutoresizing
    UIViewAnimationTransition
    UISemanticContentAttribute
    文書改定履歴












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)












    トップへ(UIView)