gpt4 book ai didi

macos - 避免 SwiftUI 中的文本抖动

转载 作者:行者123 更新时间:2023-12-04 11:55:43 25 4
gpt4 key购买 nike

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

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

jiggling

(框架比字符串大)

笔记:
  • 问题是“1”比“0”更薄,所以当我打一个像 01:11 这样的组合时字符串的总长度小于(假设)00:00文本被移位。
  • 固定框架宽度对抖动没有影响。
  • 对齐.trailing.center不要修复抖动。
  • 我很好奇...不时出现。我可以通过在 String 的末尾添加一个空格来修复它像这样"%02d:%02d "

  • 滑块代码(用于完成):
    Slider(value: $totalTime, in: 0...9).frame(width: 150)

    从 Slider 值到 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”替换为您喜欢的字体。

    关于macos - 避免 SwiftUI 中的文本抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57923496/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com