在 ScrollView 中将文本对齐为前导 - SWIFTUI

Gur*_*ngh 2 uiscrollview swiftui

我有一个ScrollView

    ScrollView {
        VStack (alignment: .leading) {
            Text("\(userData.username), \(userData.age)")
                .fontWeight(.semibold)
                .font(Font.system(size:30))
        }
    }
Run Code Online (Sandbox Code Playgroud)

输出是:

在此处输入图片说明

我尝试翻转堆栈并在其中包含滚动视图,但得到了相同的结果。

我的工作是将它放在一个 HStack 中并添加一个 Spacer()

HStack {
         Text("\(userData.username), \(userData.age)")
             .fontWeight(.semibold)
             .font(Font.system(size:30))
             .padding([.leading])
         Spacer()
}
Run Code Online (Sandbox Code Playgroud)

这可以解决问题,但我认为这不是理想的方式。这是唯一的方法吗?或者是否有更好的解决方案在滚动视图中垂直对齐文本?

Asp*_*eri 10

默认情况下,堆栈容器与内容紧密相连,因此对齐无效。

这是可能的解决方案

ScrollView {
    VStack (alignment: .leading) {
        Text("\(userData.username), \(userData.age)")
            .fontWeight(.semibold)
            .font(Font.system(size:30))
    }.frame(maxWidth: .infinity, alignment: .leading) // << make screen-wide !!
}
Run Code Online (Sandbox Code Playgroud)