UICordinateSpace
継承:なし
フレームワーク: iOS 8.0 以降の UIKit。関連情報...
概観
UICoordinateSpace プロトコルは、スクリーン上の基準の異なるフレーム間で変換するためのメソッドを定義します。あなたのアプリでほとんどの座標空間の間を簡単に変換できるように UIView クラスは、このプロトコルを採用しています。UIScreen クラスには、スクリーンの座標空間へのアクセス権を与える coordinateSpace と fixedCoordinateSpace プロパティが含まれています。カスタムの座標空間と、アプリのビューやスクリーンの座標空間の間で変換するために、独自のクラスで、このプロトコルを採用できます。
iOS 8 以前では、ウィンドウと、スクリーン座標は固定され、常に縦向き(ポートレイト) で、デバイスのスクリーンを基準に指定されていました。ユーザーがデバイスを回転させても、ウィンドウとスクリーンの座標空間が回転することは決してありませんので、ウインドウとスクリーンの座標は決して変更しませんでした。その代わりに、これらのウィンドウにインストールビューはそれらの所有するビューコントローラが与えられたデバイスの向きをサポートしているかどうかに応じて回転します。ウィンドウとスクリーンの座標は決して変化しないため、アプリは常に座標に基準の固定フレームを持っています。
iOS 8 以降では、ウィンドウとスクリーンの座標空間は、もはや特定のデバイスの向きに固定されていません。その代わりに、ウィンドウとスクリーン座標は、一般的に(常にではないが)、現在のデバイスの向きに一致するアプリのインターフェイスの向きに、一致するように変更します。(ビューコントローラがまだ、アプリがサポートするインターフェイスの向きを決定するため) ウィンドウおよびスクリーンを回転するのは、ビュー、ウィンドウ、スクリーンの間の相互作用を簡素化します。固定フレームや参照を必要とする場合には、例えば、タッチイベントや、スクリーン上の項目の位置を永続的に保存する必要がある場合は、UIScreen オブジェクトで提供される固定座標空間にこのプロトコルのメソッドを使用できます。
スクリーンの固定座標空間にビューの現在の座標空間からポイントを変換するには、次のようなコードを使用します
[myView convertPoint:point toCoordinateSpace:myView.window.screen.fixedCoordinateSpace];
このプロトコルのメソッドを実装するときは、あなたのローカル座標空間から、またはそれへ座標値を変換しなければなりません。このような変換を行う場合は、スクリーン座標空間を中間座標空間として使用し、ターゲットの座標空間に変換する前にスクリーン座標に変換します。例えば、ローカル座標から変換し、別のビューの座標空間に変換する場合、ローカル座標をスクリーン座標空間にまず変換し、その後これらのスクリーン座標を、ビューの座標空間に変換します。
タスク
境界の長方形を取得
bounds 必須プロパティ
独自の座標系内のアイテムの位置とサイズを記述する境界の長方形。(読み取り専用)
宣言
<< SWIFT >>
var bounds: CGRect { get } << OBJECTIVE-C >> @property(readonly, nonatomic) CGRect bounds
議論
このプロパティでの長方形はアプリのインターフェイスの向きと常に一致します。すべてのインターフェイスの向きをサポートするアプリの場合、ユーザがポートレートやランドスケープモードの間で、デバイスを回転させると、このプロパティの値は変更します。
利用可能
iOS 8.0 以降で利用可能。
座標空間同士の変換
- convertPoint:toCoordinateSpace: 必須
指定された座標空間に、現在のオブジェクトの座標空間から点を変換します。
宣言
<< SWIFT >>
func convertPoint(_ point: CGPoint, toCoordinateSpace coordinateSpace: UICoordinateSpace) -> CGPoint << OBJECTIVE-C >> - (CGPoint)convertPoint:(CGPoint)point toCoordinateSpace:(id<UICoordinateSpace>)coordinateSpace
パラメーター
point | 現在のオブジェクトの座標系で指定された点。 |
coordinateSpace | その point へ変換されるべき座標空間。 |
戻り値
ターゲットの座標空間に指定された点。
利用可能
iOS 8.0 以降で利用可能。
利用可能
iOS 2.0 以降で利用可能。
- convertPoint:fromCoordinateSpace: 必須
点を指定された座標空間から、現在のオブジェクトの座標空間に変換します。
宣言
<< SWIFT >>
func convertPoint(_ point: CGPoint, fromCoordinateSpace coordinateSpace: UICoordinateSpace) -> CGPoint << OBJECTIVE-C >> - (CGPoint)convertPoint:(CGPoint)point fromCoordinateSpace:(id<UICoordinateSpace>)coordinateSpace
パラメーター
point | 指定された座標空間での点。 |
coordinateSpace | point が指定された座標空間。 |
戻り値
現在のオブジェクトの座標空間で指定された点。
利用可能
iOS 8.0 以降で利用可能。
- convertRect:toCoordinateSpace: 必須
指定された座標空間に、現在のオブジェクトの座標空間から長方形を変換します。
宣言
<< SWIFT >>
func convertRect(_ rect: CGRect, toCoordinateSpace coordinateSpace: UICoordinateSpace) -> CGRect << OBJECTIVE-C >> - (CGRect)convertRect:(CGRect)rect toCoordinateSpace:(id<UICoordinateSpace>)coordinateSpace
パラメーター
rect | 現在のオブジェクトの座標系で指定される長方形。 |
coordinateSpace | rect が変換されるべき座標空間。 |
戻り値
ターゲットの座標空間に指定された長方形。
利用可能
iOS 8.0 以降で利用可能。
- convertRect:fromCoordinateSpace: 必須
指定された座標空間から長方形を現在のオブジェクトの座標空間に変換します。
宣言
<< SWIFT >>
func convertRect(_ rect: CGRect, fromCoordinateSpace coordinateSpace: UICoordinateSpace) -> CGRect << OBJECTIVE-C >> - (CGRect)convertRect:(CGRect)rect fromCoordinateSpace:(id<UICoordinateSpace>)coordinateSpace
パラメーター
rect | 指定した座標空間の長方形。 |
coordinateSpace | rect が指定された座標空間。 |
戻り値
現在のオブジェクトの座標空間で指定された長方形。
利用可能
iOS 8.0 以降で利用可能。
次の章