iOS - 动态类型和界面生成器

时间:2015-08-18 20:45:41

标签: ios interface-builder accessibility

尝试实施对动态类型的支持并遇到问题。我在Interface Builder中设置了我想要在标签上使用的样式。我注册了UIContentSizeCategoryDidChangeNotification,在处理程序中,我将标签的字体设置为......什么?我怎么知道使用什么样的风格?难道不存在让我找到它的存取器吗?如果没有,我必须把它放在两个地方,这意味着他们会失去同步,我会生气。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我认为这不会让您满意,但将字体设置为[UIFont preferredFontForTextStyle:UIFontTextStyleTitle2或您在Interface Builder中设置的任何样式。

忽略Interface Builder中的设置。它甚至不值得设置。 Interface Builder是(主要)静态表示视图的初始状态,但这是动态类型。

你可以将UILabel子类化为动态,和/或加入我们在代码中设置视图的黑暗面。

答案 1 :(得分:0)

自iOS 10起,无需遵循此原理,因为adjustsFontForContentSizeCategory属性允许根据设置中选择的内容类型大小automatic scaling设置字体大小。

Apple reference sitesize variations中也很好地定义了所有文本样式。