关于ios:使用UISlider更改字体大小

Changing font size by using UISlider

我无法执行此操作,并且此代码不在viewDidLoad()

内部

1
2
3
4
5
6
7
8
9
@IBOutlet weak var label: UILabel!
@IBOutlet weak var slider: UISlider!

@IBAction func slider(sender: UISlider) {
    let senderValue = CGFloat(sender.value)
    label?.font = UIFont(name: (label?.font.fontName)!, size:senderValue * 20)
    label?.sizeToFit()

}

如果您可以通过任何方式提供帮助,那都很棒。

screenshot


代码不必在viewDidLoad内部。

您是否使用autoLayout定位视图?

这应该起作用:

1
2
3
4
5
6
7
8
@IBOutlet weak var label: UILabel!
@IBOutlet weak var slider: UISlider!

@IBAction func sliderAction(sender: AnyObject) {
    print("Slider value \\(slider.value)")

    self.label.font = UIFont.systemFontOfSize(CGFloat(slider.value * 20.0))
}

检查是否:

  • UIFont对象已正确初始化。
  • 删除label?.sizeToFit。通常,标签文本是使用您在font属性中指定的字体绘制的。
  • 在UILabel对象上正确设置了约束。