在显示计时器时,有没有办法防止SwiftUI文本标签轻微移动?

在显示计时器时,有没有办法防止SwiftUI文本标签轻微移动?,swift,swiftui,Swift,Swiftui,我有一个简单的HStack包含2个文本结构,显示一个计时器。当定时器值改变时,它会保持轻微的位置变化。有没有办法避免这种行为 struct DurationLabel: View { let majorDuration: String // the hours/minutes part "00:00" let minorDuration: String // the seconds part "00" var body: some View { HSta

我有一个简单的
HStack
包含2个
文本
结构,显示一个计时器。当定时器值改变时,它会保持轻微的位置变化。有没有办法避免这种行为

struct DurationLabel: View {
    let majorDuration: String // the hours/minutes part "00:00"
    let minorDuration: String // the seconds part "00"

    var body: some View {
        HStack(spacing: 0) {
            Text(majorDuration + minorDuration)
                .font(.system(size: 90))
            Text(minorDuration)
                .font(.body)
        }
    }
}

对于这样的显示,我更喜欢使用单间距数字的字体。您可以在文本中使用它们,如下所示:

Text("your Text here").font(Font.largeTitle.monospacedDigit())

我已经为音频播放器等做了很多次了。。。如果要保持相同的字体,可以执行以下操作:

ZStack{
文本(“00:00”)。不透明度(0.0)
Text(“MM:SS”)//用相同的格式在这里输入实际数字。
}
ZStack
将根据最大的子视图调整大小,而
0
基本上是任何字体中最宽的数字

这种技术适用于任何可能改变大小的内容类型。只需加载一个具有最大可能版本的“虚拟”视图并将其隐藏。然后将真实内容保留在可见视图中。然后可以避免硬编码帧大小等