在显示计时器时,有没有办法防止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
基本上是任何字体中最宽的数字
这种技术适用于任何可能改变大小的内容类型。只需加载一个具有最大可能版本的“虚拟”视图并将其隐藏。然后将真实内容保留在可见视图中。然后可以避免硬编码帧大小等