gpt4 book ai didi

SwiftUI:在 ScrollView 中居中内容

转载 作者:行者123 更新时间:2023-12-03 15:33:35 25 4
gpt4 key购买 nike

我正在尝试将一组 View 集中在 VStack 中在 ScrollView 内在 SwiftUI 中。为了简化事情,我只是想让它与单个 Text 一起工作看法。到目前为止,这是我想出的:

var body: some View {
ScrollView(alwaysBounceVertical: true){
HStack(alignment: .center) {
Spacer()
Text("This Is a Test")
Spacer()
} //HStack
.background(Color.green)
} //ScrollView
.background(Color.gray)
}
这导致:
enter image description here
我希望文本像这样在中间:
enter image description here
所以 HStack应该是全角的, Text应该在其中居中。看起来这应该很容易,但我不明白我做错了什么。 :)

最佳答案

使用 GeometryReader,您可以获得有关包含 View 大小的信息,并使用它来调整 View 大小。

    var body: some View {
GeometryReader { geometry in <--- Added
ScrollView(alwaysBounceVertical: true){
HStack(alignment: .center) {
Spacer()
Text("This Is a Test")
Spacer()
} //HStack
.frame(width: geometry.size.width) <--- Added
.background(Color.green)
} //ScrollView
.background(Color.gray)
}
}

编辑:在进一步研究之后,问题的一部分似乎是您使用的是 ScrollView。如果您删除该父项,则 HStack 中的间隔将自动导致拉伸(stretch)以填充 View 。我猜在 ScrollViews 中不会发生自动拉伸(stretch),因为它的大小没有有限的限制,它会拉伸(stretch)多少? (因为 ScrollView 可以向任何方向滚动)

关于SwiftUI:在 ScrollView 中居中内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56606511/

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