元のドキュメント: developer.apple.com/documentation/swiftui/unitpoint


構造体


UnitPoint


ビューの座標空間における正規化された2次元の点。


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+

tvOS 13.0+ visionOS 1.0+ watchOS 6.0+

@frozen
struct
UnitPoint





概観


ビューのレンダリングサイズを知らなくても、ビュー内の位置を表すには unit point を使用します。point は、各次元に値を格納し、その値がビューの原点から測った、その次元におけるビューのサイズの割合を示します。たとえば、各次元に 0.5 の値を使用することで、任意のビューの中心を表す unit point を作成できます。


let unitPoint = UnitPoint(x: 0.5, y: 0.5)

unit point をレンダリングされたビューの座標空間に投影するには、unit point の各成分にビューのサイズの対応する成分を乗算します。


let projectedPoint = CGPoint(
    x: unitPoint.x * size.width,
    y: unitPoint.y * size.height
)

ビューのサイズをたまたまわかっている場合や、unit point を何らかのカスタム目的で使用したい場合は、この計算を自分で実行することもできますが、SwiftUI は通常、以下のような場合に、あなたが要求した操作を実行するためにこの計算を自動的に行ってくれます。


  • シェイプ修飾子を使用してシェイプを変形します。たとえば、rotation(_:anchor:) でシェイプを回転させるには、シェイプを回転させるアンカーポイントを指定します。

  • gridCellAnchor(_:) ビュー修飾子を使用して、Grid セル内のビューの配置をオーバーライド(上書き)します。グリッドは、ビューへの unit point の投影と、セルへの同じ unit point の投影を揃えます。

  • スタイルを適用するシェイプを基準として、中心点、または開始点と終了点を持つグラデーションを作成します。ShapeStyle のグラデーションメソッドを参照してください。

  • 上記例のように明示的な値を指定してカスタムの unit point を作成することもできますし、SwiftUI が提供する組み込みの unit point (zerocentertopTrailing など) を使用することもできます。これらの組み込み値は、同じような名前の組み込み Alignment 型の配置位置に対応しています。


    注意


    1つ以上の成分が [0, 1] の範囲外にある unit point は、ビュー外の点に投影されます。

    レイアウト方向


    ユーザーがデバイスを英語などの左から右に記述する言語で使用するように構成すると、システムはビューの原点を左上隅に配置し、正の x 座標を右方向、正の y 座標をビューの下方向とします。右から左に記述する環境では、原点は右上隅に移動し、正の x 座標の方向は左方向に変わります。SwiftUI はシステム全体にこの変更を適用するため、通常はこの変更を処理するために特別な操作は必要ありません。たとえば、HorizontalAlignment のレイアウト方向に関する説明を参照してください。


    あなたのアプリを配布するさまざまなロケールでアプリをテストすることが重要です。ローカライズのプロセスに関する詳細は、Localization を参照してください。





    トピックス


    原点の取得


    static let zero: UnitPoint

    ビューの原点。



    頂点のポイントを取得


    static let topLeading: UnitPoint

    ビューの頂点にあるポイント、ビューの先頭のコーナー。


    static let top: UnitPoint

    ビューの上端を水平方向に中心として配置された点。


    static let topTrailing: UnitPoint

    ビューの頂点にあるポイント、ビューの後端のコーナー。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ