我正在尝试将视图定位在其父视图中的特定框架内:
struct TestView: View {
var body: some View {
ZStack {
// some backgroung
Rectangle().foregroundColor(Color.gray.opacity(0.4)).scaledToFill()
// control view that doesn't use .position. It's always centered
Rectangle()
.foregroundColor(.green)
.frame(width: 100, height: 100)
// the view I'm trying to position
Rectangle()
.foregroundColor(.blue)
.frame(width: 100, height: 100)
.position(x: 60, y: 60)
}
}
}
我希望蓝色视图始终位于左上角,偏移 10px。
当我的框架是正方形时,此方法有效:
#Preview {
TestView()
.frame(width: 300, height: 300)
}
但如果我把框架扩大一点,视野就会向上移动:
#Preview {
TestView()
.frame(width: 350, height: 300)
}
我真的很困惑为什么我的视图没有停留在左上角的 10px 以内,以及为什么当框架更宽时它会向上移动(如果有的话我会期望 X 轴发生变化)。