如何使 SwiftUI 中的 SF 符号具有相同的宽度

Lor*_*lor 5 ios swift swiftui

有没有办法让所有相同大小的符号具有相同的宽度?

正如您从下面的屏幕截图中看到的,person.2.fill宽度最长且square.and.arrow.up最接近。在这种情况下,将字体设置为等宽字体似乎不会改变任何内容。

Image(systemName: "square.and.arrow.up")
    .font(Font.system(size: 18, weight: .medium, design: .monospaced))
Run Code Online (Sandbox Code Playgroud)

解决方法不是“强制”它们具有相同的宽度,而是在相同宽度的容器内水平居中。

在此输入图像描述

Lor*_*lor 1

该问题的解决方法。然而,问题是它不能很好地处理动态字体大小。

HStack {
    Image(systemName: "square.and.arrow.up")
        .font(Font.system(size: 18, weight: .medium, design: .monospaced))
        .foregroundColor(Color("secondary"))
}
.frame(minWidth: 30)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述