iOS - 动态类型和界面生成器
Posted
技术标签:
【中文标题】iOS - 动态类型和界面生成器【英文标题】:iOS - Dynamic Type and Interface Builder 【发布时间】:2015-08-18 20:45:40 【问题描述】:尝试实现对动态类型的支持并遇到问题。我在 Interface Builder 中的标签或其他东西上设置了我想使用的样式。我注册了 UIContentSizeCategoryDidChangeNotification,在处理程序中,我将标签的字体设置为……什么?我怎么知道要使用什么样式?不应该有一个访问器可以让我找到它吗?如果不是,我必须把它放在两个地方,这意味着它们会不同步,我会很生气。有什么想法吗?
【问题讨论】:
【参考方案1】:我认为这不会让您满意,但请将字体设置为 [UIFont preferredFontForTextStyle:UIFontTextStyleTitle2
或您在 Interface Builder 中设置的任何样式。
忽略 Interface Builder 中的设置。它甚至不值得设置。 Interface Builder 是(大部分)static 表示视图初始状态,但这是 Dynamic 类型。
您可以继承 UILabel
以使其动态化,和/或加入我们在代码中设置视图的阴暗面。
【讨论】:
【参考方案2】:从 ios 10 开始,无需遵循此基本原理,因为 adjustsFontForContentSizeCategory
属性允许根据设置中选择的内容类型大小设置 automatic scaling 的字体大小。
所有的文本样式在Apple reference site 和它们的size variations 中都有很好的定义。
【讨论】:
以上是关于iOS - 动态类型和界面生成器的主要内容,如果未能解决你的问题,请参考以下文章
动态模拟 iOS 动态类型系统文本大小 (UIContentSizeCategory)