gpt4 book ai didi

swift - VStack 中意外的 GeometryReader View 行为

转载 作者:行者123 更新时间:2023-12-04 14:07:09 27 4
gpt4 key购买 nike

有人可以解释为什么:GeometryReader将其内容放置在左上角,而不是中心。GeometryReader占用所有可用空间。

struct ContentView: View {
var body: some View {
VStack(alignment: .center) {
GeometryReader { geo in
Text("Hello, World!")
.frame(width: geo.size.width * 0.7, height: 40)
.background(Color.red)
}
.background(Color.yellow)

Text("More text")
.background(Color.blue)
}
}
}
这是它的外观:
GeometryReader top left
我希望它定位 Text “你好,世界” View 在中心。

最佳答案

首先,您需要进行一些关键的更改以获得您所期望的。它出现这样的原因是因为您没有按照您认为应该使用的方式使用 Geometry Reader。 Geometry reader 本质上是一种获取父 View 大小的方法。 通常,您不会使用它来布局 View ,并且仍然坚持使用嵌套在几何读取器内部的 VStack、ZStack 和 HStack。这是因为读取器扩展以在 X and Y 中占据尽可能多的空间。飞机。执行您期望的操作的典型结构可能如下所示。最终将“Hello World”集中在几何阅读器的中心。

GeometryReader { reader in 
VStack {
Spacer()
HStack {
Spacer()
Text("Hello World")
Spacer()
Spacer()
}
}

关于swift - VStack 中意外的 GeometryReader View 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67604520/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com