gpt4 book ai didi

swiftui - 在 Swift UI 中垂直居中文本

转载 作者:行者123 更新时间:2023-12-01 21:55:03 26 4
gpt4 key购买 nike

enter image description here

我希望“$0.00”位于屏幕中间,但我不知道该怎么做。

这是我的代码:

    var body: some View {
NavigationView {
ScrollView {
VStack(alignment: .center) {
Text(String(format: "$%.2f", (dolaresVM.dolares.last?.v)!))
.font(.largeTitle)
}.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
.edgesIgnoringSafeArea(.all)



}.navigationBarTitle("Test")
.onAppear(perform: self.dolaresVM.fetchDolares)
}
}

我做错了什么?

最佳答案

ScrollView 为其子项提供了无限的内部空间。 VStack 无法占用所有这些空间。所以 VStack 的高度是由它的内容定义的(在我们的例子中是 Text)。没有 ScrollView 它会像你想要的那样工作:

       var body: some View {
NavigationView {
VStack(alignment: .center) {
Text(String(format: "$%.2f", 0)).font(.largeTitle)
}.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
.edgesIgnoringSafeArea(.all)
.navigationBarTitle("Test")
}
}

VStack 提供 idealHeight 也很有帮助。您可以使用 GeometryReader 获取 ScrollView 的“外部”高度:

        NavigationView {
GeometryReader { geometry in
ScrollView {
VStack(alignment: .center) {
Text(String(format: "$%.2f", 0)).font(.largeTitle)
}.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, idealHeight: geometry.size.height, maxHeight: .infinity)
.edgesIgnoringSafeArea(.all)
}.navigationBarTitle("Test")
}
}

关于swiftui - 在 Swift UI 中垂直居中文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58187373/

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