如何对齐SwiftUI中Text视图的内部内容?
解决SwiftUI多行Text始终左对齐的问题
你的问题出在frame修饰符上——当设置maxWidth: .infinity时,Text会默认在这个充满宽度的frame里居中显示,只有当文本长度撑满宽度时才会呈现左对齐的视觉效果。
只需要给frame加上alignment: .leading参数,就能让Text从一开始就紧贴左侧:
Text("the cat sat on the mat\nand that is that") .multilineTextAlignment(.leading) .padding(.horizontal, 12.0) .padding(.vertical, 6.0) .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .leading) // 新增alignment参数 .border(.black)
原理说明:multilineTextAlignment(.leading)控制的是文本内部多行之间的对齐方式,而frame的alignment参数控制的是Text视图在父容器(即你设置的全屏frame)里的位置。两者结合才能实现“文本始终左对齐,同时撑满可用宽度”的效果。
内容的提问来源于stack exchange,提问作者Manngo
相关产品推荐
相关产品推荐

