label.font.pointSize是只读的,所以我不确定如何更改它。


当前回答

斯威夫特3.1

标签。font = Label.font.withSize(新值)

其他回答

我使用fontWithSize标签与轻系统字体,但它改变回正常的系统字体。

如果你想保持字体的特征,最好包括描述符。

标签。font = UIFont(descriptor: label.font.fontDescriptor(), size: 16.0)

苹果一直在无缘无故地改变: 斯威夫特4 +:

myLabel.font = UIFont.systemFont(ofSize: 16)

感谢苹果公司浪费了人们的时间来弄清楚他们需要使用什么“字体大小”的方法!

斯威夫特3

label.font.withSize(16)

斯威夫特3.1

import UIKit

extension UILabel {
    var fontSize: CGFloat {
        get {
            return self.font.pointSize
        }
        set {
            self.font =  UIFont(name: self.font.fontName, size: newValue)!
            self.sizeToFit()
        }
    }
}

我认为最好的办法做到这一点-如果保持相同的字体,已经分配给UILabel将是:

(使用斯威夫特)

label.font = label.font.fontWithSize(20)

(使用Swift 3)

label.font = label.font.withSize(20)

理想情况下,我将在viewDidLayoutSubviews方法中设置这个,因为它不需要每次视图出现时都更改。