界面生成器中具有动态类型的自定义字体

Custom font with dynamic type in interface builder

我的 Storyboard 中有几个视图有 UILabels。这些标签设置为 Automatically Adjusts Font 并使用 BodyHeadline.

等文本样式

我知道有这样一种编程方法: https://useyourloaf.com/blog/using-a-custom-font-with-dynamic-type/

let label = UILabel()
label.font = scaledFont.font(forTextStyle: textStyle)
label.adjustsFontForContentSizeCategory = true

但是,考虑到我已经布置了标签并设置了它们的文本样式,是否可以在界面生成器中使用自定义字体 AND 文本样式?或者在尊重已经设置的文本样式的同时以某种方式覆盖它们的字体系列?

不,您需要使用编程方法。但是,很容易编写一个遍历所有标签的小循环,并为每个标签获取已在界面构建器中设置的动态类型 "role" 并替换基于该 "role" 的 UIFontMetrics 值和所需的自定义字体。