Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 避免SwiftUI中的文本抖动_Macos_Swiftui_Beta - Fatal编程技术网

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”
滑块代码(用于完成):

从滑块值到hh:mm的转换:

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修复了可怕的抖动