非常像我们如何在Storyboard中设置全局色调,是否可以将全局字体系列设置为其他内容?
例如,我想将全局/默认字体从系统更改为Source Sans Pro 16pt
。但是,我必须做的事情(据我所知)是以下之一:
我对(2)的问题是我没有像使用故事板那样得到(1)中的视觉反馈。另一方面,它也不是很有说服力,因为我必须手动设置它。
那么,有没有办法更改/设置默认的Storyboard字体?
答案 0 :(得分:4)
您可以使用Appearance API,以确保所有控件具有相同的字体(在运行时)
关于如何使用Appearance设置UIButton的字体,请查看此question。
对于UILabel和UITextView,请执行以下操作。这可以在AppDelegate application(_:didFinishLaunchingWithOptions:)
let labelAppearance = UILabel.appearance()
labelAppearance.font = UIFont.myFont()
let textFieldAppearance = UITextView.appearance()
textFieldAppearance.font = UIFont.myFont()
之前的解决方案不会更新故事板。
要在故事板上直观地查看更改,您可以查看功能
prepareForInterfaceBuilder()
Here是一个解释如何在故事板中直观地更新它的答案,但为此你需要为textFields,button等使用自定义类。
以上链接的代码示例:
@IBDesignable
public class MyUILabel: UILabel {
public override func awakeFromNib() {
super.awakeFromNib()
configureLabel()
}
public override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
configureLabel()
}
func configureLabel() {
font = UIFont(name: Constants.DefaultFont, size: 40)
}
}