尝试实施对动态类型的支持并遇到问题。我在Interface Builder中设置了我想要在标签上使用的样式。我注册了UIContentSizeCategoryDidChangeNotification,在处理程序中,我将标签的字体设置为......什么?我怎么知道使用什么样的风格?难道不存在让我找到它的存取器吗?如果没有,我必须把它放在两个地方,这意味着他们会失去同步,我会生气。有什么想法吗?
答案 0 :(得分:0)
我认为这不会让您满意,但将字体设置为[UIFont preferredFontForTextStyle:UIFontTextStyleTitle2
或您在Interface Builder中设置的任何样式。
忽略Interface Builder中的设置。它甚至不值得设置。 Interface Builder是(主要)静态表示视图的初始状态,但这是动态类型。
你可以将UILabel
子类化为动态,和/或加入我们在代码中设置视图的黑暗面。
答案 1 :(得分:0)
自iOS 10起,无需遵循此原理,因为adjustsFontForContentSizeCategory
属性允许根据设置中选择的内容类型大小automatic scaling设置字体大小。
在Apple reference site和size variations中也很好地定义了所有文本样式。