更改文本时,UILabel中使用等宽字体的奇怪行为

Tee*_*etz 5 uilabel uislider monospace ios swift

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

我有一个UISlider和一个UILabel在我的UIViewController.Label显示滑块的当前值+一些描述文本.更改滑块的值时,文本左右myLabel摇晃一下.myLabel因为我正在使用,我希望它的文字不会左右摇晃monospacedDigitSystemFont(ofSize:weight:).

这是我的代码:

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)
    }
}
Run Code Online (Sandbox Code Playgroud)

关于摇晃的GIF:

摇摇欲坠的等宽文本

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

Tam*_*gel 5

这是一个可怕的错误,它是由等宽字体粗体引起的。将权重设置为常规可以解决此问题。

myLabel.font = UIFont.monospacedDigitSystemFont(ofSize: 15, weight: .regular)
Run Code Online (Sandbox Code Playgroud)

如果您仍想使用粗体,请考虑使用非标准的等宽字体。

  • NVM。当我使用手动缩放(脸非常靠近屏幕)时,我可以看到它。奇怪的。我原以为震动会更大。 (2认同)