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

标签 swiftui

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/

相关文章:

ios - 有没有办法增加 SwiftUI 中选取器的可点击区域?

swift - 选择器在 ios 15 中重叠,阻止其中一些滚动

swiftui - 如何在 macOS 上使用 SwiftUI 显示 QLPreviewPanel?

swiftui - PageTabViewStyle 打破了 NavigationView

ios - SwiftUI错误:无法转换'UIImage类型的值?关闭结果类型“无效”

swift - 按下键盘后面的按钮时应用程序崩溃

SwiftUI - 仅设置一次状态变量后,警报显示两次

swiftui - ContentView (SwiftUI) 的背景图像不是 subview ,但具有正确的滚动行为

swiftui - 如何通过单击按钮转到另一个 View

ios - SwiftUI:如何将核心数据对象传递给 View ?