Instance Method インスタンスメソッド

coordinateSpace(name:)

Assigns a name to the view’s coordinate space, so other code can operate on dimensions like points and sizes relative to the named space. ある名前をビューのもつ座標空間に対して割り当てます、それで他のコードは、その名前空間に関連する点と大きさのような次元それらで演算できます

Declaration 宣言

func coordinateSpace<T>(name: T) -> some View where T : Hashable

Parameters パラメータ

name

A name used to identify this coordinate space. この座標空間を識別するのに使われる名前。

Discussion 議論

Use coordinateSpace(name:) to allow another function to find and operate on a view and operate on dimensions relative to that view. coordinateSpace(name:)を使って、別の関数が、あるビュー上で発見および演算できるようにそしてそのビューに関連する次元それらで演算できるようにしてください。

The example below demonstrates how a nested view can find and operate on its enclosing view’s coordinate space: 下の例は、どのようにある入れ子にされたビューがそれのまわりを囲んでいるビューのもつ座標空間を見つけてそれで演算できるかを実演します:


struct ContentView: View {
    @State var location = CGPoint.zero


    var body: some View {
        VStack {
            Color.red.frame(width: 100, height: 100)
                .overlay(circle)
            Text("Location: \(Int(location.x)), \(Int(location.y))")
        }
        .coordinateSpace(name: "stack")
    }


    var circle: some View {
        Circle()
            .frame(width: 25, height: 25)
            .gesture(drag)
            .padding(5)
    }


    var drag: some Gesture {
        DragGesture(coordinateSpace: .named("stack"))
            .onChanged { info in location = info.location }
    }
}

Here, the VStack in the ContentView named “stack” is composed of a red frame with a custom Circle view overlay(_:alignment:) at its center. ここで、“stack” と名前をつけられたContentViewの中のVStackは、ある赤いフレームとあるあつらえのCircleビューのそれの中心でのoverlay(_:alignment:)から組み立てられます。

The circle view has an attached DragGesture that targets the enclosing VStack’s coordinate space. As the gesture recognizer’s closure registers events inside circle it stores them in the shared location state variable and the VStack displays the coordinates in a Text view. circleビューは、添付されたDragGestureを持ちます、それはそのまわりを囲んでいるVStackのもつ座標空間を目標としています。ジェスチャリコグナイザ(ジェスチャ認識子)のもつクロージャがcircle内部のイベントそれらを登録するにつれて、それはそれらを共有location状態変数の中に格納します、そしてVStackは座標をTextビューにおいて表示します。

A screenshot showing an example of finding a named view and tracking