SwiftUI 与 maxWidth 的文本对齐不起作用

Posted

技术标签:

【中文标题】SwiftUI 与 maxWidth 的文本对齐不起作用【英文标题】:SwiftUI Text alignment with maxWidth not working 【发布时间】:2020-10-25 05:37:48 【问题描述】:

我有以下代码:

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 认为它已经左对齐了?

【问题讨论】:

【参考方案1】:

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

解决办法

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

【讨论】:

以上是关于SwiftUI 与 maxWidth 的文本对齐不起作用的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI在多个HStacks中对齐不同长度的文本

SwiftUI:对齐文本

数据结构与算法之深入解析“文本左右对齐”的求解思路与算法示例

在 SwiftUI 中对齐 HStack,但大小不相等

将 SwiftUI 文本与另一个文本的基线和顶部对齐

Leetcode 68.文本左右对齐