实例方法
coordinate
coordinateSpace(name:)
为视图的坐标空间分配一个名称,以便其他代码可以对相对于命名空间的点和大小等维度进行操作。
声明
func coordinateSpace<T>(name: T) -> some View where T : Hashable
参数
name
用于标识此坐标空间的名称。
详述
使用coordinateSpace(name:)
允许另一个函数查找和操作视图,并操作相对于该视图的维度。
下面的示例演示了嵌套视图如何查找和操作其封闭视图的坐标空间:
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 }
}
}
在这里,名为“stack” 的ContentView
中的VStack
由一个红框组成,其中心有一个自定义的Circle
视图View/overlay(_:alignment:)
。
circle
视图有一个附加的DragGesture
,它以封闭的 VStack 的坐标空间为目标。由于手势识别器的关闭在 circle
中注册事件,它将它们存储在共享的 location
状态变量中,并且 VStack
在 Text
视图中显示坐标。
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
相关用法
- Swift Never colorMultiply(_:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代码示例
- Swift Never compositingGroup()用法及代码示例
- Swift Never contextMenu(menuItems:)用法及代码示例
- Swift Never cornerRadius(_:antialiased:)用法及代码示例
- Swift Never colorInvert()用法及代码示例
- Swift Never contentShape(_:_:eoFill:)用法及代码示例
- Swift Never contrast(_:)用法及代码示例
- Swift Never controlSize(_:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:message:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)用法及代码示例
- Swift Never containerShape(_:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)用法及代码示例
- Swift Never clipShape(_:style:)用法及代码示例
- Swift Never clipped(antialiased:)用法及代码示例
- Swift Never pageCommand(value:in:step:)用法及代码示例
- Swift Never opacity(_:)用法及代码示例
- Swift Never accessibilityAction(action:label:)用法及代码示例
- Swift Never alert(isPresented:error:actions:message:)用法及代码示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代码示例
- Swift Never position(x:y:)用法及代码示例
- Swift Never position(_:)用法及代码示例
- Swift Never luminanceToAlpha()用法及代码示例
- Swift Never accessibilityAction(_:_:)用法及代码示例
- Swift Never previewDisplayName(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Never coordinateSpace(name:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。