【问题标题】:Setting a custom font to all labels in a view为视图中的所有标签设置自定义字体
【发布时间】:2012-01-26 12:41:55
【问题描述】:

在 Xcode 4 中,如果字体未安装在操作系统中或未出现在 IB 的字体列表中,则无法通过 Interface Builder 设置视图标签的字体系列。

由于某些视图中的所有标签都使用相同的字体,我需要知道是否有一种简单快捷的方法可以将它们全部设置为相同的字体系列,而不是一一设置其系列字体。

【问题讨论】:

    标签: ios cocoa-touch uilabel


    【解决方案1】:

    您可以使用 IBOutletCollection。在 IB 中创建一个集合并将所有标签连接到它。然后在代码中只使用 setValue forKey。不知道它是否更有效,但您不必遍历子视图。

    .h
    IBOutletCollection(UILabel) NSArray *labels;
    
    .m
    UIFont *newFont = [UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:14];
    [labels setValue:newFont forKey:@"font"]; 
    

    【讨论】:

      【解决方案2】:

      您可以遍历相关视图的子视图数组属性中的每个条目。对于每一个,检查它是否是UILabel(发送isKindOfClass:[UILabel class])。如果是,您可以将font 属性设置为合适的字体对象。

      【讨论】:

      • 很好,但那是我不想做的。如果没有其他办法,我会采取它......
      • 您可以尝试仅使用 iOS 5 appearance 代理,但我找不到任何有据可查的证据表明 UILabel 的字体属性是可代理的外观。我稍后会做一个实验。
      • 快速查看 - 没有UILabel 属性被标记为外观代理系统支持。因此,循环遍历所有内容似乎是您最好的选择。
      • 这不会检测子视图中的标签。
      猜你喜欢
      • 2013-03-08
      • 2013-08-23
      • 2017-09-12
      • 2017-11-16
      • 2018-02-15
      • 2020-03-14
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多