元のドキュメント: 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

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



    中間のポイントを取得


    static let leading: UnitPoint

    ビューの先端部分の垂直方向の中心に位置するポイント。


    static let center: UnitPoint

    ビューの中心に位置するポイント。


    static let trailing: UnitPoint

    ビューの後端の垂直方向の中心に位置するポイント。



    下端のポイントを取得


    static let bottomLeading: UnitPoint

    ビューの一番下の、先頭のコーナーにあるポイント。


    static let bottom: UnitPoint

    ビューの下端の水平方向の中心に位置するポイント。


    static let bottomTrailing: UnitPoint

    ビューの一番下、後端にあるポイント。



    ポイントの作成


    init()

    原点で unit point を作成します。


    init(x: CGFloat, y: CGFloat)

    指定された水平方向および垂直方向のオフセットを持つ unit point を作成します。



    ポイントの座標を取得


    var x: CGFloat

    原点からその点までの水平方向の正規化された距離。


    var y: CGFloat

    原点からその点までの垂直方向の正規化された距離。





    関連


    以下に準拠


    Animatable

    BitwiseCopyable

    Copyable

    Decodable

    Encodable

    Equatable

    Escapable

    Hashable

    Sendable

    SendableMetatype





    以下も見よ


    幾何学的構造へのアクセス


    enum Axis

    2次元座標系における水平方向または垂直方向の寸法。


    struct Angle

    ラジアンまたは度数で値を取得できる幾何学的角度。


    struct UnitPoint3D

    ビューの座標空間における正規化された 3D ポイント。


    struct Anchor

    アンカーソースと特定のビューから導き出された不透明な値。


    protocol DepthAlignmentID


    struct Alignment3D

    3つの軸すべてにおいて整列している。


    struct GeometryProxyCoordinateSpace3D

    CoordinateSpace3D に基づく変換に使用できる GeometryProxy3D の表現。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ