避免 SwiftUI 中的文本抖动

Avoid Text jiggling in SwiftUI

有什么办法可以避免下面的抖动吗?代码是这样的:

Text(format: "%02d:%02d", hours, minutes)
    .frame(width: 100, alignment: .trailing)

(框架比字符串大)

备注:

滑块代码(完成):

Slider(value: $totalTime, in: 0...9).frame(width: 150)

滑块值到hh:mm的转换:

func formatTime(_ time: Float) -> String {
    let hours: Int = Int(time)
    let minutes: Int = Int(time.truncatingRemainder(dividingBy: 1.0) * 60)

    return String(format: "%02d:%02d", hours, minutes)
}

您可以像这样告诉它使用等宽数字:

Text(String(format: "%02d:%02d", hours, minutes))
    .font(Font.body.monospacedDigit())
    .frame(width: 100, alignment: .trailing)

您可以将 "Font.body" 替换为您喜欢的字体。