Macos 避免SwiftUI中的文本抖动
有没有办法避免下面的抖动?代码如下所示:Macos 避免SwiftUI中的文本抖动,macos,swiftui,beta,Macos,Swiftui,Beta,有没有办法避免下面的抖动?代码如下所示: Text(format: "%02d:%02d", hours, minutes) .frame(width: 100, alignment: .trailing) Text(String(format: "%02d:%02d", hours, minutes)) .font(Font.body.monospacedDigit()) .frame(width: 100, alignment: .trailing) (框架比字
Text(format: "%02d:%02d", hours, minutes)
.frame(width: 100, alignment: .trailing)
Text(String(format: "%02d:%02d", hours, minutes))
.font(Font.body.monospacedDigit())
.frame(width: 100, alignment: .trailing)
(框架比字符串大)
注:
- 问题是“1”比“0”细,所以当我点击像
这样的组合时,字符串的总长度小于(比方说)01:11
并且文本被替换00:00
- 固定帧宽度对抖动没有影响
- 对齐
。拖尾
或
居中
不要固定抖动
- 我对不时出现的
感到好奇。我可以通过在…
字符串的末尾添加一个空格来修复它,就像这样
“%02d:%02d”
func formatTime(\utime:Float)->字符串{
让小时数:Int=Int(时间)
分钟数:Int=Int(时间截断余数(除数:1.0)*60)
返回字符串(格式:“%02d:%02d”,小时,分钟)
}
您可以告诉它使用单空格数字,如下所示:
Text(format: "%02d:%02d", hours, minutes)
.frame(width: 100, alignment: .trailing)
Text(String(format: "%02d:%02d", hours, minutes))
.font(Font.body.monospacedDigit())
.frame(width: 100, alignment: .trailing)
您可以用首选字体替换“Font.body”。为什么不设置一个固定的
minWidth
?欢迎使用StackOverflow。你能发布一个更完整的代码片段吗?理想情况下,它应该是视图中的所有内容
我可以在itunes等应用程序中看到同样的问题。不同之处在于,它们的字体非常小,因此可能并不重要。在我的例子中,文本有一个更大的字体,所以抖动是非常明显的。你可以总是使用单空格字体:p修复了可怕的抖动