SwiftUI-如何相对于下面的文本对齐文本

问题描述 投票:0回答:2

在下图中,我有一个名字和姓氏。我希望姓氏居中,如中间的蓝线所示,而名字与姓氏左对齐,如第一条蓝线所示。我正在使用GeometryReader基于总高度的百分比设置垂直位置,但是我不知道如何获取较低的文本位置并将其传递给较高的位置。

struct NameText: View {
    var body: some View {
        GeometryReader { geo in
            VStack {
                Text("PETER")
                    .fontWeight(.bold)
                    .font(.title)
                    .foregroundColor(Color(red: 30/255, green: 82/255, blue: 132/255, opacity: 1.0))
                    .offset(x: 0, y: geo.size.height * -0.75)
                Text("PARKER")
                    .fontWeight(.thin)
                    .font(.largeTitle)
                    .offset(x: 0, y: geo.size.height * -0.75)
            }
        }
    }
}

enter image description here

text alignment swiftui
2个回答
1
投票
struct ContentView: View {
    var body: some View {
        VStack(alignment: .leading) {
            Text("PETER")
            Text("PARKER").font(.largeTitle)
        }
    }
}

enter image description here


0
投票

由于字体粗细的差异,需要一些补偿,因此我将提出以下方法

“

struct NameText: View {
    var body: some View {
        GeometryReader { geo in
            VStack(alignment: .leading) {
                Text("PETER")
                    .fontWeight(.bold)
                    .font(.title)
                    .foregroundColor(Color(red: 30/255, green: 82/255, blue: 132/255, opacity: 1.0))
                Text("PARKER")
                    .fontWeight(.thin)
                    .font(.largeTitle)
                    .offset(x: -0.5)
            }//.border(Color.blue) // << just helper for Pixie verification
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.