在Text视图的许多属性中,我找不到任何与文本对齐相关的属性。我在一个演示中看到它自动处理RTL,当使用View的主体放置东西时,它总是自动居中。
是否有一些概念,我错过了关于SwiftUI布局系统,如果没有,我怎么能设置文本对齐属性的文本?
在Text视图的许多属性中,我找不到任何与文本对齐相关的属性。我在一个演示中看到它自动处理RTL,当使用View的主体放置东西时,它总是自动居中。
是否有一些概念,我错过了关于SwiftUI布局系统,如果没有,我怎么能设置文本对齐属性的文本?
当前回答
我们需要对齐文本,而不是它所在的堆栈。因此,调用multilineTextAlignment(.center)并设置行限制,我可以看到文本对齐到中心。我不知道为什么我必须设置行限制,我认为如果你有一个大的文本,它会扩展。
Text("blahblah")
.font(.headline)
.multilineTextAlignment(.center)
.lineLimit(50)
其他回答
您可以将Vertical stackView的对齐方式设置为前导。像下面的
VStack(alignment: .leading) {
Text("Turtle Rock")
.font(.title)
Text("Joshua Tree National Park")
.font(.subheadline)
}
我猜SwiftUI想让我们使用像堆栈这样的包装器。
因此,不要写类似Text("Hello World").aligned(.leading)这样的东西,而是鼓励这样做:
VStack(alignment: .leading) {
Text("Hello World")
}
我们需要对齐文本,而不是它所在的堆栈。因此,调用multilineTextAlignment(.center)并设置行限制,我可以看到文本对齐到中心。我不知道为什么我必须设置行限制,我认为如果你有一个大的文本,它会扩展。
Text("blahblah")
.font(.headline)
.multilineTextAlignment(.center)
.lineLimit(50)
你总是可以添加一个框架到文本字段,并可以修改它的对齐方式。
Text("Hello World!")
.frame(alignment : .topLeading)
因为,这只是为了几行-这比在任何一个堆栈上使用对齐要好
我也有同样的问题。 我用这个来解决问题。
Text("Test")
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .leading)