XCode - 更改故事板

时间:2016-10-14 04:45:19

标签: ios xcode storyboard

非常像我们如何在Storyboard中设置全局色调,是否可以将全局字体系列设置为其他内容? 例如,我想将全局/默认字体从系统更改为Source Sans Pro 16pt。但是,我必须做的事情(据我所知)是以下之一:

  1. 在故事板中更改每个标签,按钮,textField等的字体。
  2. 通过Swift ViewDidLoad代码(如this question)或this question
  3. 中所述的扩展程序设置

    我对(2)的问题是我没有像使用故事板那样得到(1)中的视觉反馈。另一方面,它也不是很有说服力,因为我必须手动设置它。

    那么,有没有办法更改/设置默认的Storyboard字体?

1 个答案:

答案 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)
    }

}