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 は、UIKit、コアグラフィックス、および OpenGL ES などの技術を使用して、矩形領域内にコンテンツを描画します。
- いくつかの View property を新しい値にアニメーション化できます。
- レイアウトとサブビューの管理
- View は、ゼロ個以上のサブビューを含められます。
- 各 View は、親ビューに関連して、独自のデフォルトのサイズ変更の動作を定義します。
- 必要に応じて View は、そのサブビューのサイズと位置を定義できます。
- イベント処理
- View は、レスポンダであり、UIResponder クラスによって定義されている他のイベントと、タッチイベントを処理できます。
- 一般的なジェスチャーを処理するために、ジェスチャ認識装置をインストールするには、 addGestureRecognizer:< メソッドを使用できます。
View は他の Viewを埋め込み、洗練された視覚的な階層を作成できます。これは、(subview として知られる) 埋め込まれている View の間に親子関係を作成し、(superview として知られている) 親 View の埋め込みを作成します。通常は、サブビューの可視領域は、そのスーパービューの境界にクリップされていませんが、iOS の中では、その動作を変更するために clipsToBounds プロパティを使用できます。親 View は、サブビューを任意の数だけ含んでいてもよいですが、各サブビューには、適切にそのサブビューを配置するための責任がある一つだけのスーパービューがあります。
View の形状は、その frame、bounds、center プロパティによって定義されます。frame は原点と、そのスーパービューの座標系における、ビューの寸法を定義し、一般的にビューのサイズと位置を調整するために、レイアウト時に使用されます。center プロパティは、その大きさを変えずにビューの位置を調整するために使用できます。それが見た通りに、カスタム描画コードでほぼ独占的に使用される境界は、ビューの内部寸法を定義します。frame と境界の長方形のサイズ部分はいずれかの長方形の大きさを変更すると、両方のサイズを更新するように連結されています。
UIView クラスを使用する方法の詳細については、iOS 用のビュープログラミングガイド を参照してください。
注意: iOS 2.x では、UIView オブジェクトの最大サイズは 1024 × 1024 ポイントです。iOS 3.0 以降では、View は、もはやこの最大サイズに制限されていませんが、それでもそれらが消費するメモリの量によって制限されています。可能な限り小さく View のサイズを保つのは、最善の関心事です。どちらの iOS のバージョンが実行されているかに関わらず、画面の寸法よりも著しく大きいコンテンツを分割して表示するのを検討する必要があります。
ビューの作成
プログラムで View を作成するには、次のようなコードを使用できます。
- CGRect viewRect = CGRectMake(10, 10, 100, 100);
- 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つの異なる方法があります:
- iOS 4 以降では、ブロックベースのアニメーション・メソッドを使用して下さい。(推奨)
- アニメーション・メソッドの開始/コミット を使用して下さい。
(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 のサブクラスでオーバーライドを検討するべきメソッドを含んでいます。
- 初期化:
- initWithFrame: - あなたがこのメソッドを実装することをお勧めします。また、加えて、このメソッドの代わりに、カスタム初期化メソッドを実装できます。
- initWithCoder: - あなたは Interface Builder の nib ファイルから View をロードし、あなたの View がカスタム初期化を必要とする場合は、このメソッドを実装て下さい。
- layerClass - あなたの View が、その補助記憶装置に、異なるコアアニメーション層を使用したい場合にのみ、このメソッドを実装します。例えば、あなたのビューが大きなスクロール可能な領域を表示するために分割表示を使用している場合、このメソッドをオーバーライドし、CATiledLayer クラスを返すようにしたいかもしれません。
- 描画および印刷:
- drawRect: - あなたのビューが、カスタムコンテンツを描画する場合は、このメソッドを実装して下さい。あなたのビューが、カスタム描画を全く行わない場合は、このメソッドをオーバーライドすることは避けてください。
- drawRect:forViewPrintFormatter: - 印刷時に異なるビューのコンテンツを描画したい場合にのみ、このメソッドを実装して下さい。
- 制約:
- requiresConstraintBasedLayout - View クラスが正しく動作するのに制約が必要な場合は、このクラスメソッドを実装して下さい。
- updateConstraints - あなたのビューがあなたのサブビュー間でカスタム制約を作成する必要がある場合は、このメソッドを実装して下さい。
- alignmentRectForFrame:, frameForAlignmentRect: - あなたのビューが他のビューに整列されている方法をオーバーライドするには、これらのメソッドを実装して下さい。
- レイアウト:
- sizeThatFits: - あなたのビューが通常のサイズの変更操作中とは異なるデフォルトサイズに、変更したい場合は、このメソッドを実装して下さい。たとえば、サブビューが正しく表示することができないポイントに縮小する事から、あなたのビューを防ぐために、このメソッドを使用する場合があります。
- layoutSubviews - 制約または自動サイズ変更行動のいずれかが提供するよりも、あなたのサブビューのレイアウトをより正確に制御する必要がある場合に、このメソッドを実装して下さい。
- didAddSubview:, willRemoveSubview: - サブビューの追加と削除を追跡するために、必要に応じてこれらのメソッドを実装します。
- willMoveToSuperview:, didMoveToSuperview - あなたのビュー階層内の現在のビューの動きを追跡するために、必要に応じてこれらのメソッドを実装します。
- willMoveToWindow:, didMoveToWindow - 別のウィンドウへのビューの動きを追跡するために、必要に応じてこれらのメソッドを実装します。
- イベント処理:
- touchesBegan:withEvent:, touchesMoved:withEvent:, touchesEnded:withEvent:, touchesCancelled:withEvent: - 直接タッチイベントを処理する必要がある場合は、これらのメソッドを実装します。(ジェスチャーベースの入力の場合は、ジェスチャー認識装置を使用して下さい。)
- gestureRecognizerShouldBegin: - あなたのビューが直接タッチイベントを処理し、追加のアクションをトリガする事からジェスチャー認識装置を添付されるのを防止することを望む場合は、このメソッドを実装します。
サブクラス化の代替方法
多くのビューの動作は、サブクラス化を必要とせずに構成できます。メソッドのオーバーライド開始前に、あなたが必要とする動作を提供するであろう以下のプロパティや動作を変更するかどうかを検討して下さい。
- addConstraint: - ビューとそのサブビューの自動レイアウト動作を定義します。
- autoresizingMask - superview のフレームの変更時に自動レイアウト動作を提供します。これらの動作は、制約と組み合わせることができます。
- contentMode - ビューの frame とは対照的に、ビューのコンテンツのレイアウト動作を提供します。このプロパティは、またコンテンツがビューに合わせて拡大縮小される方法やそれがキャッシュまたは再描画されているかどうかに影響を与えます。
- contentStretch - 伸縮性のあるものとしてビューの部分を定義します。この動作は通常、ビューの再描画時に毎回パフォーマンスに影響を与えるたびに洗練されたレイアウトが必要とするボタンやその他のサイズ変更可能なビューを実装するために使用されます。
- hidden または alpha - 隠したり、ビューのレンダリングされたコンテンツにアルファを適用するよりもむしろ、全体としてビューの透明度を変更します。
- backgroundColor - その色を自分自信で描くよりむしろ、ビューの色を設定します。
- サブビュー - drawRect: を使用してあなたのコンテンツ描くよりむしろ、提示したいコンテンツで画像とラベルのサブビューを埋め込みます。
- ジェスチャー認識装置 - あなた自身でサブクラスで傍受し、タッチイベントを処理するよりも、ターゲットオブジェクトに action message を送信するために、ジェスチャ認識装置を使用できます。
- アニメーション - 自分自身でアニメーション化しようとするよりも、組み込みのアニメーションのサポートを使用します。Core Animation が提供するアニメーションのサポートは、高速で使いやすいです。
- 画像ベースの背景 - 比較的静的なコンテンツを表示するビューの場合、サブクラス化と画像を自分自身で描画する代わりに、ジェスチャー認識器で UIImageView オブジェクトを使用することを検討してください。その他、あなたはまた、汎用の UIView オブジェクトを使用して、ビューの CALayer オブジェクトの内容としてあなたのイメージを割り当てることもできます。
Animation-CAC.html
アニメーションは、サブクラス化し、複雑な描画コードを実装するのを必要とせずにビューに見える変更を行うための別の方法です。UIView クラスの多くのプロパティは、システムで生成されたアニメーションをトリガすることができる、これらのプロパティへの変更を意味する、アニメーションが可能です。アニメーションを開始すると、すべての変更がアニメーション化する必要があることを示すために、コードのわずか1行が必要です。ビューのアニメーションのサポートの詳細については、アニメーション を参照してください。
外観と動作の構成の詳細については、UIKit ユーザーインターフェース・カタログ の ビューについて を参照してください。
タスク
ビュー・オブジェクトの初期化
- initWithFrame: 指定イニシャライザ
初期化し、指定されたフレームの長方形で新しく割り当てられたビューオブジェクトを返します。
宣言
<< SWIFT >>
init(frame frame: CGRect) << OBJECTIVE-C >> - (instancetype)initWithFrame:(CGRect)aRect
パラメーター
aRect | ポイント単位で測られたビューのフレームの長方形。フレームの原点は、それを追加する予定のスーパービューに対して相対的です。このメソッドでは、それに応じてフレーム長方形を使用して center と bounds プロパティを設定します。 |
戻り値
初期化されたビュー・オブジェクト。
議論
使用できる前に新しいビュー・オブジェクトは、ウィンドウのビュー階層に挿入しなければなりません。プログラムでビュー・オブジェクトを作成した場合、このメソッドは、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 以降で利用可能。
以下も見よ
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 以降で利用可能。
以下も見よ
opaque プロパティ
ビューが不透明であるかどうかを決定するブール値。
宣言
<< SWIFT >>
var opaque: Bool << OBJECTIVE-C >> @property(nonatomic, getter=isOpaque) BOOL opaque
議論
このプロパティは、それがビューをどう扱うべきかについて描画システムにヒントを提供します。YES に設定すると、描画システムは、いくつかの描画操作を最適化し、パフォーマンスを向上し、完全に不透明として描画システムは、ビューを扱います。NO に設定すると、描画システムは、他のコンテンツと通常のビューを合成します。このプロパティのデフォルト値は YES です。
不透明なビューは、完全に不透明なコンテンツ、つまり、コンテンツは 1.0 のアルファ値を有するべき境界を埋めることが期待されます。ビューが不透明で、どちらかがその境界を満たさないか、完全にまたは部分的に透明なコンテンツを含んでいる場合、結果は予測できません。ビューが完全にまたは部分的に透明である場合には、必ずこのプロパティの値を NO に設定する必要があります。
drawRect: メソッドを使用して、独自のコンテンツを描画する UIView のサブクラスで opaque プロパティの値を設定する必要だけがあります。opaque プロパティは、UIButton、UILabel、UITableViewCell などのような、システム提供のクラスでは効果がありません。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
tintColor プロパティ
ビュー階層の最初のデフォルト以外の薄い色(tint color) の値で、ビュー自体で始まり、それから昇順で続きます。
宣言
<< SWIFT >>
var tintColor: UIColor! << OBJECTIVE-C >> @property(nonatomic, strong) UIColor *tintColor
議論
システムが、階層内のデフォルト以外の色を見つけることができない場合は、このプロパティの値が代わりにシステム定義の色です。
ビューの tintAdjustmentMode プロパティの値が UIViewTintAdjustmentModeDimmed の場合、tintColor プロパティの値が自動的に薄暗く表示されます。
このプロパティが変更した時サブビューのレンダリングを更新するには、tintColorDidChange メソッドをオーバーライドします。
パターンの色(UIColor クラスリファレンス で説明したように) である色はサポートされていません。
重要: tint color としてパターンの色を使用しようとすると、システムは例外を発生させます。
利用可能
iOS 7.0 以降で利用可能。
以下も見よ
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 プロパティ
レンダリングのために使用されるビューの 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 プロパティ
受信者が排他的にタッチイベントを処理するかどうかを示すブール値。
宣言
<< SWIFT >>
var exclusiveTouch: Bool << OBJECTIVE-C >> @property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch
議論
このプロパティを YES に設定すると、受信者に同じウィンドウ内の他のビューへのタッチイベントの配信をブロックする事を引き起こします。このプロパティのデフォルト値は NO です。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
境界とフレームの長方形の構成
frame プロパティ
そのスーパービューの座標系で、位置とサイズを記述するフレームの長方形。
宣言
<< SWIFT >>
var frame: CGRect << OBJECTIVE-C >> @property(nonatomic) CGRect frame
議論
この長方形は、そのスーパービューの座標系でのサイズとビューの位置を定義します。サイズへのレイアウト操作中とビューの配置中にこの長方形を使用して下さい。このプロパティを設定すると、center プロパティで指定されたポイントを変更し、それに応じて bounds の長方形内のサイズを変更できます。フレーム長方形の座標は常にポイントで指定されます。
警告: transform プロパティが識別変でない場合は、このプロパティの値は未定義で、無視されるべきです。
フレーム長方形を変更すると、drawRect:メソッドを呼び出すことなく、受信者を自動的に再表示します。drawRect:メソッドをフレーム長方形が変更した時に呼び出したい時は、UIViewContentModeRedraw に contentMode プロパティを設定して下さい。
このプロパティを変更するのは、アニメーション化することができます。しかし、transform プロパティが非識別変換を含んでいる場合は、frame プロパティの値は未定義であり、変更すべきではありません。その場合、center プロパティを使用してビューを再配置し、代わりに bounds プロパティを使用してサイズを調整できます。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
bounds プロパティ
独自の座標系でのビューの位置とサイズを記述する境界の長方形。
宣言
<< SWIFT >>
var bounds: CGRect << OBJECTIVE-C >> @property(nonatomic) CGRect bounds
議論
画面上では、境界の長方形は、そのフレームの長方形としてビューの目に見える同じ部分を表しています。デフォルトでは、境界の長方形の原点は(0、0)に設定されていますが、ビューの異なる部分を表示するには、この値を変更できます。境界の長方形のサイズは、フレームの長方形のサイズに結合されているので、いずれかの変更は、他に影響を与えます。境界のサイズを変更すると、その中心点へとビューを拡大または縮小します。境界の長方形の座標は常にポイントで指定されます。
フレームの長方形を変更すると、drawRect:メソッドを呼び出すことなく、受信者を自動的に再表示します。フレームの長方形が変更した時、drawRect:メソッドを呼び出したい場合は、contentMode プロパティに UIViewContentModeRedraw を設定して下さい。
このプロパティへの変更は、アニメーション化できます。
デフォルトの境界の原点は (0,0) で、サイズはフレームの長方形のサイズと同じです。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
center プロパティ
フレームの中心。
宣言
<< SWIFT >>
var center: CGPoint << OBJECTIVE-C >> @property(nonatomic) CGPoint center
議論
中心はそのスーパービューの座標系内で指定されており、ポイントで測定されます。このプロパティを設定すると、それに応じて frame プロパティの値が変更します。
フレームの長方形を変更すると、drawRect:を呼び出すことなく、受信者を自動的に再表示します。フレームの長方形が変更した時 drawRect:メソッドを呼び出したい場合は、 contentMode プロパティに UIViewContentModeRedraw を設定して下さい。
このプロパティへの変更は、アニメーション化できます。beginAnimations:context: クラスメソッドを使用してアニメーションブロックを開始し commitAnimations クラスメソッドを使用して、アニメーションブロックを終了してください。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
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 以降で利用可能。
以下も見よ
ビュー階層の管理
superview プロパティ
受信者のスーパービュー、もし持っていない場合は nil。(読み取り専用)
宣言
<< SWIFT >>
var superview: UIView? { get } << OBJECTIVE-C >> @property(nonatomic, readonly) UIView *superview
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
subviews プロパティ
受信者の直接のサブビュー。(読み取り専用)
宣言
<< SWIFT >>
var subviews: [UIView] { get } << OBJECTIVE-C >> @property(nonatomic, readonly, copy) NSArray <__kindof UIView *> *subviews
議論
このプロパティを使用して、カスタムビュー階層に関連したサブビューを取得できます。配列内のサブビューの順番は、画面上での視える順序を反映し、インデックス 0 でのビューは、一番後ろのビューを示します。
UIKit および他のシステムフレームワークで宣言された複雑なビューの場合、ビューのすべてのサブビューは、一般的にいつでも変更できる private と考えられます。したがって、システム提供のビューのこれらのタイプのサブビューを取得したり、変更しないでください。そうした場合、あなたのコードは、将来のシステム更新で破損する可能性があります。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
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 以降で利用可能。
以下も見よ
superviewsubviews
- 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 です。
同じ軸に沿って、複数のオプションが設定されている場合は、デフォルトの動作は、柔軟な部分の間にサイズに違いを比例して分配することです。他の柔軟な部分に対して柔軟な部分がより大きければ、より成長する可能性があります。たとえば、このプロパティが UIViewAutoresizingFlexibleWidth と UIViewAutoresizingFlexibleRightMargin 定数を含んでいるとすると、 UIViewAutoresizingFlexibleLeftMargin を含んでおらず、このようにビューの左余白の幅は固定されており、ビューの幅と右の余白が変更する可能性があることを示しています。このように、ビューはそのスーパービューの左側に固定表示され、ビューの幅とビューの増加の右側にあるギャップの両方は増加します。
自動サイズ変更動作が、あなたのビューのために必要な正確なレイアウトを提供していない場合は、カスタムコンテナビューを使用し、より正確にあなたのサブビューを配置するために、その layoutSubviews メソッドをオーバーライドできます。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
autoresizesSubviewsautoresizesSubviews プロパティ
その境界が変更する場合は、受信者が自動的にそのサブビューのサイズを変更するかどうかを決定するブール値。
宣言
<< SWIFT >>
var autoresizesSubviews: Bool << OBJECTIVE-C >> @property(nonatomic) BOOL autoresizesSubviews
議論
YES に設定すると、受信者は、その境界が変更する時、そのサブビューのサイズを調整します。デフォルト値は YES です。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
autoresizingMaskcontentMode プロパティ
その境界が変更されたときにビューがそのコンテンツをレイアウトする方法を決定するために使用するフラグ。
宣言
<< 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 オブジェクトを使用するのが簡単です。UIImage の stretchableImageWithLeftCapWidth: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
それが丁度サブビューを囲むように、受信者のビューのサイズを変更し、移動します。
宣言
<< 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 の場合、システムは、ビューの自動サイズ変更マスクで指定された動作を複製する制約のセットを作成します。これはまた、あなたが自動レイアウト内の静的、フレームベースのレイアウトを作成することを可能にし、ビューの frame、bounds、center プロパティを使用してビューのサイズと位置を変更できます。
自動サイズ変更マスク制約が完全にビューのサイズと位置を指定することに注意してください。したがって、競合を導入することなく、このサイズや位置を変更するための追加の制約を追加することはできません。あなたが動的にビューのサイズと位置を計算するために、自動レイアウトを使用する場合は、このプロパティを 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 アンカーのサブセットとのみ、このアンカーを組み合わせられます。別の leadingAnchor、trailingAnchor、または centerXAnchor と leadingAnchor を組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。
利用可能
iOS 9.0 以降で利用可能。
leftAnchor プロパティ
ビューのフレームの左端を表すレイアウトアンカー。(読み取り専用)
宣言
<< SWIFT >>
var leftAnchor: NSLayoutXAxisAnchor { get } << OBJECTIVE-C >> @property(readonly, strong) NSLayoutXAxisAnchor *leftAnchor
議論
ビューの左端との制約を作成するには、このアンカーを使用してください。NSLayoutXAxisAnchor アンカーのサブセットとのみ、このアンカーを組み合わせられます。別の leftAnchor、rightAnchor、または centerXAnchor と leftAnchor を組み合わせられます。詳細については、NSLayoutAnchor クラスリファレンス を参照してください。
利用可能
iOS 9.0 以降で利用可能。
rightAnchor プロパティ
ビューのフレームの右端を表すレイアウトアンカー。(読み取り専用)
宣言
<< SWIFT >>
var rightAnchor: NSLayoutXAxisAnchor { get } << OBJECTIVE-C >> @property(readonly, strong) NSLayoutXAxisAnchor *rightAnchor
議論
ビューの右端との制約を作成するには、このアンカーを使用してください。NSLayoutXAxisAnchor アンカーのサブセットとだけ、このアンカーを組み合わせられます。別の rightAnchor、leftAnchor、または centerXAnchor と rightAnchor を組み合わせられます。詳細については、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 アンカーのサブセットとだけ、このアンカーを組み合わせられます。別の trailingAnchor、leadingAnchor、または centerXAnchor と trailingAnchor を組み合わせられます。詳細については、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 以降で利用可能。
以下も見よ
layoutMarginsreadableContentGuide プロパティ
ビュー内で読み取り可能な幅の領域を表すレイアウトガイド。(読み取り専用)
宣言
<< SWIFT >>
var readableContentGuide: UILayoutGuide { get } << OBJECTIVE-C >> @property(nonatomic, readonly, strong) UILayoutGuide *readableContentGuide
議論
このレイアウトガイドは、ラインを追跡するために、ユーザーに自分の頭を移動するのを強制することなく読み取ることができる領域を定義します。読み取り可能なコンテンツ領域には、以下の規則に従います。
- 読み取り可能なコンテンツガイドは、決してビューのレイアウトマージンガイドを越えて延びません。
- 読み取り可能なコンテンツガイドは、レイアウトマージンガイド内側の垂直の中央に配置されます。
- 読み取り可能なコンテンツガイドの幅は、現在の動的テキストサイズで定義された読み取り可能な幅よりも小さいかに等しいです。
テキストの単一の列をレイアウトするために読み取り可能なコンテンツガイドを使用してください。複数の列をレイアウトしている場合、あなたの列に最適な幅を決定するために、ガイドの幅を使用できます。
利用可能
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:
: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)ベースラインの制約を満たすために使用されるビューを返します。
旧式の文
代わりに viewForFirstBaselineLayout か viewForLastBaselineLayout プロパティを使用して下さい。
宣言
<< 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
ビューの制約は更新が必要かどうかを制御します。
宣言
<< SWIFT >>
func setNeedsUpdateConstraints() << OBJECTIVE-C >> - (void)setNeedsUpdateConstraints
議論
カスタムビューのプロパティが制約に影響を与えるように変更した場合、制約が将来のある時点で更新する必要があることを示すには、このメソッドを呼び出せます。その後、システムは、通常のレイアウトパスの一部として updateConstraints を呼び出します。バッチの制約変化への最適化ツールとしてこれを使用してください。それらが必要とされる直前にすべてを一度に制約を更新すると、複数の変更がレイアウトパスの間に、あなたのビューに加えられたときに、制約を不必要なに再計算しないことが保証されます。
利用可能
iOS 6.0 以降で利用可能。
以下も見よ
- 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 | 印刷可能なコンテンツを描画するための領域を定義する長方形。 |
formatter | viewPrintFormatter メソッドを呼び出すことによって得られる、UIViewPrintFormatter のインスタンス。 |
議論
ビューの印刷されたコンテンツが、その表示された内容と異なって表示させたい場合は、このメソッドを実装して下さい。印刷ジョブにビューの印刷書式を追加する時、このメソッドを実装しない場合は、ビューの drawRect: メソッドは、印刷用コンテンツを提供するために呼び出されます。
印刷されたコンテンツ用のカスタム描画ルーチンを実装する方法の詳細については。iOS 用の描画と印刷ガイド を参照してください。
利用可能
iOS 4.2 以降で利用可能。
ジェスチャ認識装置の管理
- addGestureRecognizer:
ビューに、ジェスチャー認識装置を添付します。
宣言
<< SWIFT >>
func addGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer) << OBJECTIVE-C >> - (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
パラメーター
gestureRecognizer | UIGestureRecognizer クラスから派生したクラスのオブジェクト。このパラメータは nil であってはなりません。 |
議論
ビューに、ジェスチャ認識装置を取り付けた場合、ジェスチャーの表現の範囲を定義し、そのビューとそのサブビューのすべてにヒットテストしたタッチを、受信するようにします。ビューは、ジェスチャ認識装置への強い参照を確立します。
利用可能
iOS 3.2 以降で利用可能。
以下も見よ
– removeGestureRecognizer:gestureRecognizers
- removeGestureRecognizer:
受信しているビューからジェスチャ認識装置を切り離します。
宣言
<< SWIFT >>
func removeGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer) << OBJECTIVE-C >> - (void)removeGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
パラメーター
gestureRecognizer | UIGestureRecognizer クラスから派生したクラスのオブジェクト。 |
議論
このメソッドは、ビューからそれを取り外すに加えて、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
パラメーター
gestureRecognizer | UIGestureRecognizerStatePossible な状態から移行しようとしているジェスチャー認識装置。 |
戻り値
ジェスチャー認識装置が、タッチイベントを追跡し続けるべきで、ジェスチャーをトリガーするためにそれらを使用する時は 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 であっても良いです。 |
議論
このメソッドは、UIViewAnimationOptionCurveEaseInOut と UIViewAnimationOptionTransitionNone のアニメーションオプションを使用して、すぐに指定されたアニメーションを実行します。
例えば、それが完全に透明になるまで、ビューをフェードしたくて、またそれからあなたのビュー階層から削除した場合、次のようなコードを使用できます。
- [UIView animateWithDuration:0.2
-         animations:^{view.alpha = 0.0;}
-         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 であってはいけません。 |
議論
このメソッドは、UIViewAnimationOptionCurveEaseInOut と UIViewAnimationOptionTransitionNone アニメーションオプションを使用して、指定されたアニメーションをすぐにアニメーションを実行します。
アニメーションの間、ビューがアニメーション化されるため、ユーザの相互作用は一時的に無効にされます。(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 キーを含めなければなりません。
以下のコードは、指定されたコンテナビューの反転移行を作成します。移行中の適切な時点で、あるサブビューは除去され、別のサブビューはコンテナビューに追加されます。これは、新しいビューが新しいサブビューで所定の位置に反転したかのように見えますが、実際にそれが新しい構成で元の位置に戻り、アニメーションされるのとど同じビューです。
- [UIView transitionWithView:containerView
-                 duration:0.2
-                 options:UIViewAnimationOptionTransitionFlipFromLeft
-                 animations:^{ [fromView removeFromSuperview]; [containerView addSubview:toView]; }
-                 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: メソッドを使用して開始・中止セレクタをインストールする場合、あなたが animationID と context パラメータで指定した値は、実行時に、あなたのセレクタに渡されます。これらのセレクタに追加情報を渡すために、これらのパラメータを使用できます。
このメソッドの使用は、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
パラメーター
delegate | setAnimationWillStartSelector: と 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。あなたのメソッドは、以下の引数を取りらなければなりません。
オプションでアプリケーションが提供する識別子を含む 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。あなたのメソッドは、以下の引数を取りらなければなりません。
オプションでアプリケーションが提供する識別子を含む 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
パラメーター
transition | view に適用すべき移行。可能な値は UIViewAnimationTransition に記載されています。 |
view | 移行を適用すべきビュー。 |
cache | YES なら、view の前と後の画像を一度にレンダリングし、アニメーションのフレームを作成するために使用されます。キャッシュはパフォーマンスを向上させますが、このパラメーターを YES に設定する場合は、移行中にビューまたはそのサブビューを更新してはいけません。ビューを更新し、そのサブビューは、キャッシュの動作を妨害し、ビューの内容がアニメーション中に誤ってレンダリング(または間違った場所に) されることがあります。移行が、ビューを更新するのを終了するまで待つ必要があります。 NO なら、ビューとその内容が著しくフレームレートに影響を与える可能性がある、移行アニメーションのフレームごとに更新する必要があります。 |
議論
移行中にビューの外観を変更したい場合は、例えばあるビューから別のビューへと移り、-以下のように、UIView のインスタンスのコンテナビューを使用します。
- アニメーションブロックを開始します。
- コンテナビューの移行を設定します。
- コンテナビューからサブビューを削除します。
- コンテナビューに新しいサブビューを追加します。
- アニメーションブロックをコミットします。
このメソッドの使用は、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 に、変換すべきビュー。view が nil の場合、このメソッドは代わりに、ウィンドウベースの座標系に変換します。それ以外の場合、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
パラメーター
point | view のローカル座標系(境界) で指定されたポイント。 |
view | その座標系で point のあるビュー。view が nil の場合、このメソッドは代わりに、ウィンドウベースの座標に変換します。それ以外の場合は、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 | 変換操作の対象であるビュー。view が nil の場合、このメソッドは代わりに、ウィンドウベースの座標に変換します。それ以外の場合は、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
パラメーター
rect | view の、ローカル座標系で指定した長方形。 |
view | その座標系で長方形のあるビュー。view が nil の場合、このメソッドは代わりに、ウィンドウベースの座標に変換します。それ以外の場合は、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 を返した場合でも時には、ビューは以下の理由により、フォーカス可能ではないかもしれません。
- ビューが隠されています。
- ビューのアルファが 0 に設定されています。
- ビューが userInteractionEnabled セットを NO にしました。
- ビューは、現在ビュー階層にはありません。
利用可能
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;
定数
- UIViewAnimationOptionLayoutSubviews
- UIViewAnimationOptionAllowUserInteraction
- UIViewAnimationOptionBeginFromCurrentState
- UIViewAnimationOptionRepeat
- UIViewAnimationOptionAutoreverse
- UIViewAnimationOptionOverrideInheritedDuration
- UIViewAnimationOptionOverrideInheritedCurve
- UIViewAnimationOptionAllowAnimatedContent
- UIViewAnimationOptionShowHideTransitionViews
- UIViewAnimationOptionOverrideInheritedOptions
- UIViewAnimationOptionCurveEaseInOut
- UIViewAnimationOptionCurveEaseIn
- UIViewAnimationOptionCurveEaseOut
- UIViewAnimationOptionCurveLinear
- UIViewAnimationOptionTransitionNone
- UIViewAnimationOptionTransitionFlipFromLeft
- UIViewAnimationOptionTransitionFlipFromRight
- UIViewAnimationOptionTransitionCurlUp
- UIViewAnimationOptionTransitionCurlDown
- UIViewAnimationOptionTransitionCrossDissolve
- UIViewAnimationOptionTransitionFlipFromTop
- UIViewAnimationOptionTransitionFlipFromBottom
それらがその parent と一緒にアニメーション化されるようにレイアウトサブビューは時間をコミットします。
iOS 4.0 以降で利用可能。
それらがアニメーション化されている間に、ユーザはビューと対話できます。
iOS 4.0 以降で利用可能。
すでに実行中のアニメーションに関連付けられた現在の設定からアニメーションを開始します。このキーが存在しない場合、任意の実行中のアニメーションが新しいアニメーションが開始される前に終了するのを許されます。別のアニメーションが実行中でない場合は、このキーは効果がありません。
iOS 4.0 以降で利用可能。
無限にアニメーションを繰り返します。
iOS 4.0 以降で利用可能。
前向き、後向きにアニメーションを実行します。UIViewAnimationOptionRepeat オプションと組み合わせる必要があります。
iOS 4.0 以降で利用可能。
アニメーションが提出されたときに指定された元の継続期間の値を使用するようにアニメーションを強制します。このキーが存在しない場合、アニメーションは、実行中のアニメーションの残り時間(もしあれば) を継承します。
iOS 4.0 以降で利用可能。
アニメーションが提出されたときに指定された元のカーブ値を使用するようにアニメーションを強制します。このキーが存在しない場合、アニメーションは、実行中のアニメーションの曲線(もしあれば) を継承します。
iOS 4.0 以降で利用可能。
動的にプロパティの値を変更して、ビューを再描画することによってビューをアニメーション化します。このキーが存在しない場合、ビューは、スナップショットイメージを使用してアニメーション化されます。
iOS 4.0 以降で利用可能。
存在する場合は、このキーは、ビューが非表示またはビューの移行を行う際に表示(削除または追加の代わりに) されます。このキーを使用する場合、両方のビューは、親ビューの階層にすでに存在しなければなりません。このキーが存在しない場合は、移行中に行き先のビューが追加され、そして来る方からのビューはサブビューの親ビューのリストから削除されます。
iOS 4.0 以降で利用可能。
アニメーションの型や全てのオプションを継承しないようにするオプション。
iOS 4.0 以降で利用可能。
容易にイン、容易にアウト曲線は、ゆっくりと始まり、その継続期間の中央から加速して、その後完了前に再度遅くするアニメーションを発生します。
iOS 4.0 以降で利用可能。
容易にイン曲線は、アニメーションがゆっくりと開始し、その後それが進むにつれてスピードアップして行きます。
iOS 4.0 以降で利用可能。
容易にアウト曲線は、すぐに開始し、それが完了すると遅くなるアニメーションを発生します。
iOS 4.0 以降で利用可能。
リニアアニメーションカーブはアニメーションがその継続期間に均等に発生します。
iOS 4.0 以降で利用可能。
遷移が全く指定されていません。
iOS 4.0 以降で利用可能。
左から右にその垂直軸の周りにビューを反転させ移行します。ビューの左側が前の方に、右側が後方にに向かって移動します。
iOS 4.0 以降で利用可能。
右から左にその垂直軸の周りにビューを反転させ遷移します。ビューの右側が前の方に、左側が後ろに向かって移動します。
iOS 4.0 以降で利用可能。
下から眺め上げたカールするビューの移行。
iOS 4.0 以降で利用可能。
上から見下ろしたカールするビューの移行。
iOS 4.0 以降で利用可能。
あるビューから次へとディゾルブする移行。
iOS 4.0 以降で利用可能。
上から下へ、その水平軸の周りのビューを反転させ移行します。ビューの上側は、前面に向かい、下部は背面に向かって移動します。
iOS 4.0 以降で利用可能。
下から上へ、その水平軸の周りのビューを反転させ移行します。ビューの下側には、前面に向かい、上側は背面に向かって移動します。
iOS 4.0 以降で利用可能。
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;
定数
- UIViewAnimationCurveEaseInOut
- UIViewAnimationCurveEaseIn
- UIViewAnimationCurveEaseOut
- UIViewAnimationCurveLinear
容易にイン、容易にアウト曲線は、アニメーションをゆっくりと始め、その継続期間の中央から加速して、その後完了前に再度遅くするアニメーションを発生します。これは、ほとんどのアニメーションのデフォルトの曲線です。
iOS 2.0 以降で利用可能。
容易にインの曲線は、アニメーションがゆっくりと開始し、進むにつれてスピードアップします。
iOS 2.0 以降で利用可能。
容易にアウト曲線は、アニメーションがすぐに開始し、それが完了するとゆっくりにさせます。
iOS 2.0 以降で利用可能。
線形アニメーション曲線はアニメーションをその継続期間に均等に発生させます。
iOS 2.0 以降で利用可能。
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;
定数
- UIViewContentModeScaleToFill
- UIViewContentModeScaleAspectFit
- UIViewContentModeScaleAspectFill
- UIViewContentModeRedraw
- UIViewContentModeCenter
- UIViewContentModeTop
- UIViewContentModeBottom
- UIViewContentModeLeft
- UIViewContentModeRight
- UIViewContentModeTopLeft
- UIViewContentModeTopRight
- UIViewContentModeBottomLeft
- UIViewContentModeBottomRight
必要に応じて、コンテンツのアスペクト比を変更することにより、自身のサイズに合わせてコンテンツを拡大縮小するオプション。
iOS 2.0 以降で利用可能。
アスペクト比を維持することによって、ビューのサイズに合わせてコンテンツを拡大縮小するオプション。ビューの境界のいずれかの残りの領域は透明です。
iOS 2.0 以降で利用可能。
ビューのサイズを埋めるために、コンテンツを、拡大縮小するためのオプション。コンテンツの一部は、ビューの境界を埋めるためにクリップされるかもしれません。
iOS 2.0 以降で利用可能。
setNeedsDisplay メソッドを呼び出すことによって境界が変更する時に、ビューを再表示するオプション
iOS 2.0 以降で利用可能。
同じ割合を維持し、ビューの境界内のコンテンツを中央に配置するオプション。
iOS 2.0 以降で利用可能。
ビューの境界で上に揃えたコンテンツを中央に配置するオプション。
iOS 2.0 以降で利用可能。
ビューの境界で下に揃えたコンテンツを中央に配置するオプション。
iOS 2.0 以降で利用可能。
ビューの左側にコンテンツを揃えるオプション。
iOS 2.0 以降で利用可能。
ビューの右側にコンテンツを揃えるオプション。
iOS 2.0 以降で利用可能。
ビューの左上隅にコンテンツを揃えるオプション。
iOS 2.0 以降で利用可能。
ビューの右上隅にコンテンツを揃えるオプション。
iOS 2.0 以降で利用可能。
ビューの左下隅にコンテンツを揃えるオプション。
iOS 2.0 以降で利用可能。
ビューの右下隅にコンテンツを揃えるオプション。
iOS 2.0 以降で利用可能。
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;
定数
- UIViewTintAdjustmentModeAutomatic
- UIViewTintAdjustmentModeNormal
- UIViewTintAdjustmentModeDimmed
ビューの色合い調整モードは、そのスーパービューの色合い調整モード(またはビューが全くスーパービューを持っていない場合 UIViewTintAdjustmentModeNormal) と同じです。
iOS 7.0 以降で利用可能。
ビューの tintColor プロパティは、ビューの完全に修飾されていない tint 色を返します。
iOS 7.0 以降で利用可能。
ビューの tintColor プロパティは、ビューの元の tint 色の彩度を下げた、薄暗くしたバージョンを返します。
iOS 7.0 以降で利用可能。
Import 文
<< OBJECTIVE-C >>
@import UIKit;
<< SWIFT >>
import UIKit
利用可能
iOS 7.0 以降で利用可能。
UISystemAnimation
アニメーションが完了した時、階層からビューを削除するオプション。
宣言
<< SWIFT >>
enum UISystemAnimation : UInt { case Delete } << OBJECTIVE-C >> typedef enum{ UISystemAnimationDelete, } UISystemAnimation;
定数
- UISystemAnimationDelete
アニメーションが完了した時、ビュー階層からビューを削除するオプション。
iOS 7.0 以降で利用可能。
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;
定数
- UIViewAutoresizingNone
- UIViewAutoresizingFlexibleLeftMargin
- UIViewAutoresizingFlexibleWidth
- UIViewAutoresizingFlexibleRightMargin
- UIViewAutoresizingFlexibleTopMargin
- UIViewAutoresizingFlexibleHeight
- UIViewAutoresizingFlexibleBottomMargin
ビューがサイズを変更しないことを示すためのオプション。
iOS 2.0 以降で利用可能。
左余白の方向のビューを拡張または縮小することによって行われるリサイズ。
iOS 2.0 以降で利用可能。
ビューの幅を拡張または縮小することによって行われるリサイズ。
iOS 2.0 以降で利用可能。
右余白の方向のビューを拡張または縮小することによって行われるリサイズ。
iOS 2.0 以降で利用可能。
上余白の方向のビューを拡張または縮小することによって行われるリサイズ。
iOS 2.0 以降で利用可能。
ビューの高さを拡張または縮小することによって行われるリサイズ。
iOS 2.0 以降で利用可能。
下余白の方向のビューを拡大または縮小することによって行われるリサイズ。
iOS 2.0 以降で利用可能。
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;
定数
- UIViewAnimationTransitionNone
- UIViewAnimationTransitionFlipFromLeft
- UIViewAnimationTransitionFlipFromRight
- UIViewAnimationTransitionCurlUp
- UIViewAnimationTransitionCurlDown
移行が何も指定されていないことを示すためのオプション。
iOS 2.0 以降で利用可能。
左から右へ、垂直軸周りのビューを反転させる移行。ビューの左側は前方へ、右側は後方に向かって移動します。
iOS 2.0 以降で利用可能。
右から左へ、垂直軸周りのビューを反転させる移行。ビューの右側は前方へ、左側は後方に向かって移動します。
iOS 2.0 以降で利用可能。
下から眺め上げるカールする移行。
iOS 2.0 以降で利用可能。
上から見下ろすカールする移行。
iOS 2.0 以降で利用可能。
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;
定数
- UIViewKeyframeAnimationOptionLayoutSubviews
- UIViewKeyframeAnimationOptionAllowUserInteraction
- UIViewKeyframeAnimationOptionBeginFromCurrentState
- UIViewKeyframeAnimationOptionRepeat
- UIViewKeyframeAnimationOptionAutoreverse
- UIViewKeyframeAnimationOptionOverrideInheritedDuration
- UIViewKeyframeAnimationOptionOverrideInheritedOptions
- UIViewKeyframeAnimationOptionCalculationModeLinear
- UIViewKeyframeAnimationOptionCalculationModeDiscrete
- UIViewKeyframeAnimationOptionCalculationModePaced
- UIViewKeyframeAnimationOptionCalculationModeCubic
- UIViewKeyframeAnimationOptionCalculationModeCubicPaced
サブビューは親ビューと一緒にアニメーション化されるように時間をコミットする、レイアウトサブビューのオプション。
iOS 7.0 以降で利用可能。
それらがアニメーション化されている間に、ユーザがビューと対話することを可能にするオプション。
iOS 7.0 以降で利用可能。
すでに実行中のアニメーションに関連付けられている現在の設定からアニメーションを開始するオプション。このオプションが存在しない場合、全ての実行中のアニメーションが新しいアニメーションが開始される前に終了する事を許可されます。別のアニメーションが実行中でない場合は、このオプションは効果がありません。
iOS 7.0 以降で利用可能。
無限にアニメーションを繰り返すオプション。
iOS 7.0 以降で利用可能。
前後にアニメーションを実行するオプション。UIViewAnimationOptionRepeat オプションと組み合わせる必要があります。
iOS 7.0 以降で利用可能。
アニメーションが提出されたときに指定された元の継続期間の値を使用するようにアニメーションを強制するオプション。このオプションが存在しない場合、アニメーションは、実行中のアニメーションがもしあれば、その残りの期間を継承します。
iOS 7.0 以降で利用可能。
アニメーションの型や全てのオプションを継承しないオプション。
iOS 7.0 以降で利用可能。
キーフレーム値の間を補間するとき、単純な線形計算を使用するオプション。
iOS 7.0 以降で利用可能。
キーフレーム値の間を補間しないように、むしろそれぞれの新しいキーフレーム値に直接ジャンプするオプション。
iOS 7.0 以降で利用可能。
簡単なペーシングアルゴリズムを使用して、中間のキーフレーム値を計算するオプション。このオプションでは、均等にペースされたアニメーションになります。
iOS 7.0 以降で利用可能。
キーフレーム値を通過するデフォルトのキャットマル - ロム・スプラインを使用して中間フレームを計算するオプション。このアルゴリズムのパラメータを調整することはできません。
iOS 7.0 以降で利用可能。
アニメーションのタイミングプロパティーを無視し立方スキームを使用して中間フレームを計算するオプション。その代わりに、タイミング・パラメータは、アニメーションに定速を与えるために、暗黙的に計算されます。
iOS 7.0 以降で利用可能。
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;
定数
- UILayoutConstraintAxisHorizontal
- UILayoutConstraintAxisVertical
オブジェクト間の水平的な関係をレイアウトする際に適用される制約。
iOS 6.0 以降で利用可能。
オブジェクト間の垂直的な関係をレイアウトする際に適用される制約。
iOS 6.0 以降で利用可能。
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;
定数
- UILayoutFittingCompressedSize
- UILayoutFittingExpandedSize
可能な最小サイズを使用するオプション。
iOS 6.0 以降で利用可能。
可能な最大サイズを使用するオプション。
iOS 6.0 以降で利用可能。
UIView 固有の計量定数
宣言
<< SWIFT >>
let UIViewNoIntrinsicMetric: CGFloat << OBJECTIVE-C >> const CGFloat UIViewNoIntrinsicMetric;
定数
- UIViewNoIntrinsicMetric
与えられた数値のビュープロパティの固有の計量が存在しません。
iOS 6.0 以降で利用可能。
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;
定数
- UISemanticContentAttributeUnspecified
- UISemanticContentAttributePlayback
- UISemanticContentAttributeSpatial
- UISemanticContentAttributeForceLeftToRight
- UISemanticContentAttributeForceRightToLeft
ビューのデフォルト値。左から右へと右から左へのレイアウトを切り替えると、ビューが反転されます。
iOS 9.0 以降で利用可能。
再生、巻き戻し、または早送りボタンまたは再生ヘッドスクラバーのような再生コントロールを表すビュー。左から右へと右から左へのレイアウトを切り替えても、これらのビューは、反転しません。
iOS 9.0 以降で利用可能。
テキスト配置用のセグメント制御、またはゲーム用の D パッド制御のような方向制御を表すビュー。左から右へと右から左へのレイアウトを切り替えても、これらのビューは、反転しません。
iOS 9.0 以降で利用可能。
常に左から右へのレイアウトを使用して表示されるビュー。
iOS 9.0 以降で利用可能。
常に右から左へのレイアウトを使用して表示されるビュー。
iOS 9.0 以降で利用可能。
Import 文
<< OBJECTIVE-C >>
@import UIKit;
<< SWIFT >>
import UIKit
利用可能
iOS 9.0 以降で利用可能。
次の章