SwiftUI HStack 文本未对齐

Posted

技术标签:

【中文标题】SwiftUI HStack 文本未对齐【英文标题】:SwiftUI HStack text unaligned 【发布时间】:2021-01-13 17:41:18 【问题描述】:

我目前在列表中有一些 HStack。

然而,奇怪的是,“攻击”文本比所有其他字段更靠右。可能很难注意到,但它会让一切看起来都有些偏离。奇怪的是,当我尝试为它使用不同的图标时,这不会发生,比如shield.checkerboard

这是我在这里为每个单独的单元格使用的代码:

struct StatCell: View 
    
    var title: String
    var imgName: String
    var clr: Color
    var value: Int
    
    var body: some View 
        HStack 
            Image(systemName: imgName)
                .font(.headline)
                .foregroundColor(clr)
                .imageScale(.medium)
            
            Text(title)
                .font(.headline)
                .padding(.leading, 10)
            
            Spacer()
            
            Text("\(value)")
                .font(.headline)
                .foregroundColor(.gray)
        
    

总的来说,我是 Swift 和 ios 开发的新手,所以如果我有任何术语错误,我深表歉意。如果有人知道除了使用不同图标之外的任何解决方案,任何帮助将不胜感激!

【问题讨论】:

SF 符号有不同的大小。这是否回答了您的问题***.com/a/61984317/12299030?此外,您可以在文本动态增长时使用 ScaledMetric 来调整图像大小(例如在 ***.com/a/65607605/12299030 中)。 @Asperi 这解决了我的问题,谢谢!我用我使用的代码发布了一个答案。 【参考方案1】:

Asperi 的评论包含这个答案,解决了我的问题!

https://***.com/a/61984317/14410812

.frame(width: 28) 放在图像上会将它们设置为相同的宽度,从而防止出现此问题。

【讨论】:

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

SwiftUI HStack 顶部对齐不起作用

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

SwiftUI 中的布局与水平和垂直对齐

如何使用Swiftui创建用户表单

ScrollView 文本对齐 SwiftUI

SwiftUI:底部对齐不同帧大小的文本和图像