代码之家  ›  专栏  ›  技术社区  ›  Teetz

更改文本时UILabel中等距字体的奇怪行为

  •  5
  • Teetz  · 技术社区  · 7 年前

    使用时我有一个奇怪的问题 monospacedDigitSystemFont(ofSize:weight:)

    我有一个 UISlider 还有一个 UILabel 在我的 UIViewController . 标签显示滑块的当前值+一些描述文本。更改滑块的值时 myLabel 有点左右摇晃。我希望 myLabel公司 的文本不能左右摇晃,因为我正在使用 monospacedDigitSystemFont(OFS大小:重量:) .

    这是我的代码:

    import UIKit
    
    class ExampleViewController: UIViewController {
        @IBOutlet weak var myLabel: UILabel!
        @IBOutlet weak var mySlider: UISlider!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            myLabel.font = UIFont.monospacedDigitSystemFont(ofSize: 15, weight: .bold)
        }
    
        @IBAction func sliderChanged(_ sender: UISlider) {
            myLabel.text = String(format: "%.5f is the actual Value of the Slider", sender.value)
        }
    }
    

    GIF关于抖动:

    jiggling monospaced text

    有什么建议吗?我错过什么了吗?

    1 回复  |  直到 7 年前
        1
  •  5
  •   glyvox    7 年前

    这是一个可怕的错误,它是由等距字体 大胆的 . 将权重设置为“常规”可解决此问题。

    myLabel.font = UIFont.monospacedDigitSystemFont(ofSize: 15, weight: .regular)
    

    如果仍要使用粗体字体,请考虑使用非标准的等距字体。

    推荐文章