在Text视图的许多属性中,我找不到任何与文本对齐相关的属性。我在一个演示中看到它自动处理RTL,当使用View的主体放置东西时,它总是自动居中。

是否有一些概念,我错过了关于SwiftUI布局系统,如果没有,我怎么能设置文本对齐属性的文本?


当前回答

我猜SwiftUI想让我们使用像堆栈这样的包装器。

因此,不要写类似Text("Hello World").aligned(.leading)这样的东西,而是鼓励这样做:

VStack(alignment: .leading) {
    Text("Hello World")
}

其他回答

从SwiftUI beta 3开始,你可以用框架修饰符居中文本视图:

Text("Centered")
    .frame(maxWidth: .infinity, alignment: .center)

我猜SwiftUI想让我们使用像堆栈这样的包装器。

因此,不要写类似Text("Hello World").aligned(.leading)这样的东西,而是鼓励这样做:

VStack(alignment: .leading) {
    Text("Hello World")
}

不确定这是否是你想要的答案,但我有经验,SwiftUI自动切换到RTL的语言,如阿拉伯语,你不需要像UIKit中那样显式地指定。

我也有同样的问题。 我用这个来解决问题。

Text("Test")
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .leading)

你总是可以添加一个框架到文本字段,并可以修改它的对齐方式。

Text("Hello World!")
   .frame(alignment : .topLeading)

因为,这只是为了几行-这比在任何一个堆栈上使用对齐要好