如何让SwiftUI的Text视图实现左上对齐布局?
解决ScrollView内Text的对齐问题
你遇到的问题根源在于frame修饰符默认对齐方式为.center——即便你设置了multilineTextAlignment(.leading),当Text内容不足以填满指定的frame宽高时,内容仍会被居中显示。只需在frame中显式指定对齐方式为.topLeading即可解决:
ScrollView() { Text(userSettings.wordList) .lineLimit(nil) .multilineTextAlignment(.leading) .padding(.all, 2) .frame(minWidth: geometry.size.width - 30, minHeight: 200, alignment: .topLeading) // 添加alignment参数 .border(.blue) } .contentMargins(2, for: .scrollContent) .border(.gray)
补充说明:
multilineTextAlignment(.leading)仅控制文本内部换行后的对齐逻辑,不会改变Text在其容器frame内的整体位置。- 给
frame加上alignment: .topLeading后,无论内容多少,Text都会在frame容器内保持左上角对齐。
内容的提问来源于stack exchange,提问作者Duncan C
相关产品推荐
相关产品推荐

