如果我为标签字体使用外观代理,我无法通过 Interface Builder 设置字体大小
Posted
技术标签:
【中文标题】如果我为标签字体使用外观代理,我无法通过 Interface Builder 设置字体大小【英文标题】:If I use an appearance proxy for label font, I can't set font size via Interface Builder 【发布时间】:2014-02-24 11:57:03 【问题描述】:我通过应用代理中的外观代理为所有标签设置自定义字体。像这样
[[UILabel appearance] setFont:[UIFont fontWithName:@"Open Sans" size:18.0]];
但现在我遇到了一个问题:我无法通过 Interface Builder 设置字体大小(如果我设置它,什么都不会改变,外观代理设置将应用)。我只想设置一个字体名称,但要能够在 IB 中更改字体大小。
有谁知道如何修复它或解决它?
感谢任何帮助。
【问题讨论】:
其实这个问题真的很好。我对 何时 应用外观代理感兴趣,因为我正在继承 UIView 并且似乎无法设置我想要的值。 这一切背后的真正问题是字体和字体大小之间没有分离。如果 Apple 打破这种联系,每个人的代码都会变得更简洁。 【参考方案1】:如果您通过外观代理覆盖它们,IB 字体设置将不起作用。您必须在代码中设置其他字体,没有解决方法。如果您有大量标签需要在同一视图控制器的范围内更改其字体,您可以使用它们创建一个插座集合并在viewDidLoad
方法中循环它们。
【讨论】:
以上是关于如果我为标签字体使用外观代理,我无法通过 Interface Builder 设置字体大小的主要内容,如果未能解决你的问题,请参考以下文章
UIBarButtonItem 外观代理设置字体属性在 iOS 11 中不起作用
Table Cells 的 UILabel setFont 外观代理的替代方案