首页 > 解决方案 > SwiftUI 与 maxWidth 的文本对齐不起作用

问题描述

我有以下代码:

struct ContentView: View {
    var body: some View {
        Text("Test")
            .foregroundColor(.white)
            .font(.subheadline)
            .frame(maxWidth: .infinity)
            .alignmentGuide(.leading) { d in d[.leading] }
            .background(Color(.blue))
    }
}

但正如您在下图中看到的那样,它没有左对齐文本。有谁知道为什么会这样?也许是因为我正在使用 maxWidth,所以 alignmentGuide 认为它已经左对齐了?

结果

标签: swifttextswiftuialignment

解决方案


因为alignmentGuide 在容器中与其他子视图有效果。在这种情况下,您需要Text在自己的框架内对齐。

这是解决方案

演示

Text("Test")
    .foregroundColor(.white)
    .font(.subheadline)
    .frame(maxWidth: .infinity, alignment: .leading)   // << here !!
    .background(Color(.blue))

推荐阅读