有谁知道 SwiftUI 在坐标空间方面是如何渲染的?看起来框架的原点现在不在0, 0
左上角。例如,添加Text
带有修饰符的 a 会使标签偏移到视图之外。
var body: some View {
Text("my long enough string")
.position(CGPoint(x: 0, y: 100))
}
结果是我只能看到“ugh string”。
有谁知道 SwiftUI 在坐标空间方面是如何渲染的?看起来框架的原点现在不在0, 0
左上角。例如,添加Text
带有修饰符的 a 会使标签偏移到视图之外。
var body: some View {
Text("my long enough string")
.position(CGPoint(x: 0, y: 100))
}
结果是我只能看到“ugh string”。
.position(x, y) 将视图的中心定位到与父级的指定坐标。
您将需要使用 Stacks/Container 使用对齐和间隔来相对于彼此定位显示的元素。
视图总是从屏幕的中心开始。
像这样的东西:
HStack(alignment: .top) {
VStack(alignment: .leading) {
Text("top left")
Spacer()
Text("bottom left")
}
Spacer()
VStack(alignment: .leading) {
Text("top right")
Spacer()
Text("bottom right")
}
}
您可以使用“填充”而不是位置。
Text("Hello World").padding(EdgeInsets.init(top: 100, leading: 0, bottom: 0, trailing: 0))
x
:放置此视图中心的 x 坐标。y
:放置此视图中心的 y 坐标。这会将文本的中心固定在超级视图的中心。
您还可以使用以下padding()
功能:
Text("my long enough string").padding(.top, 20)
iOS 上的坐标空间有 0, 0 在左上角。您的文本被截断,因为position
属性:“将视图的中心固定在其父级坐标空间中的指定点。”</p>
您还可以使用.offset
修改器相对于左上角偏移视图。如果您使用它,请注意效果可能会根据修饰符的顺序而大不相同。
将此视图的中心固定在其父坐标空间中的指定点。