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

Posted

技术标签:

【中文标题】在 ScrollView 中将文本对齐为前导 - SWIFTUI【英文标题】:Align text as leading in ScrollView - SWIFTUI 【发布时间】:2020-07-16 13:10:58 【问题描述】:

我有一个ScrollView

    ScrollView 
        VStack (alignment: .leading) 
            Text("\(userData.username), \(userData.age)")
                .fontWeight(.semibold)
                .font(Font.system(size:30))
        
    

输出是:

我尝试翻转 Stack 并在里面放置滚动视图,但得到了相同的结果。

我的解决方法是将其放入 HStack 并添加 Spacer()

HStack 
         Text("\(userData.username), \(userData.age)")
             .fontWeight(.semibold)
             .font(Font.system(size:30))
             .padding([.leading])
         Spacer()

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

【问题讨论】:

【参考方案1】:

默认情况下,堆栈容器紧贴内容,因此对齐无效。

这是可能的解决方案

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

【讨论】:

以上是关于在 ScrollView 中将文本对齐为前导 - SWIFTUI的主要内容,如果未能解决你的问题,请参考以下文章

在 ScrollView 中将按钮与底部对齐

在 ScrollView / GeometryReader 视图中将矩形与底部对齐不起作用

SwiftUI 如何将视图的前导对齐到最超级视图的前导?

ScrollView 文本对齐 SwiftUI

在 ScrollView 中向右对齐视图

Flutter中的居中对齐前导图标