如何兑现dynamictypes辅助function在iOS故事板中使用自定义字体大小

如何使用dynamictypes文本样式 “Title 1”,并将字体面设置为故事板中UILabel的内置字体Chalkboard SE?

我需要尊重iOS中的dynamictypes大小(自iOS 7以来,Apple一直鼓励这样做)。我还需要使用内置字体Chalkboard SE,默认情况下,这种内置字体用于“文本样式”字体。 我正在使用图像中显示的自定义字体,但需要根据用户的dynamictypes / 辅助function尺寸首选项更改大小的字体,就像所有文本样式字体一样。 最好的文本样式选项是标题1 ,但字体/字体是不可接受的。

Xcode中的字体菜单。自定义选中,标题1突出显示

尽pipe您无法通过Storyboard指定自定义字体和首选文本样式,但通过以编程方式指定自定义字体的dynamictypes大小并不困难:

let pointSize = UIFontDescriptor.preferredFontDescriptorWithTextStyle(UIFont‌​TextStyleTitle1).poi‌​ntSize let customFont = UIFont(name: "Chalkboard SE", size: pointSize) 

当您收到UIContentSizeCategoryDidChangeNotification ,使用相同的代码来更新您的标签的字体。