Swift 4 - 有没有办法为项目或应用程序委托文件中存在的所有按钮和标签设置 Avenir 字体

fer*_*qui 1 fonts ios swift

有没有办法为项目或应用程序委托文件中存在的所有按钮和标签设置 Avenir 字体。我想要一个公共的地方,我可以在那里设置一次字体,以便它在所有故事板中发生变化。我怎样才能做到这一点 ?

Raj*_*lak 5

对的,这是可能的。

因为UILabel你可以解决这个问题UIAppearance

UILabel.appearance().font = UIFont(name: "Avenir", size: 17)!

因为UIButton它不像 with 那样简单UILabel,但你总是可以使用继承

class MyButton: UIButton {
    override var titleLabel: UILabel?  {
        get {
            let label = super.titleLabel
            label?.font = UIFont(name: "Avenir", size: 17)!
            return label
        }
    }
}
Run Code Online (Sandbox Code Playgroud)