2012-01-26 77 views
0

在Xcode 4中,如果字体未安装在操作系统中或未显示在列表中,则无法通过Interface Builder设置视图标签的字体系列IB中的字体。为视图中的所有标签设置自定义字体

由于某些视图所有标签使用相同的字体,我需要知道,如果有他们都设置为相同的字体系列的一种简单,快捷的方式,而不是将一个一个地设置其家人字体。

回答

8

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

.h 
IBOutletCollection(UILabel) NSArray *labels; 

.m 
UIFont *newFont = [UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:14]; 
[labels setValue:newFont forKey:@"font"]; 
1

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

+0

太好了,但那就是我不想做的事。如果没有其他办法可以做到这一点,我会把它... – subharb

+0

你可以尝试iOS 5只'外观'代理,但我找不到任何记录的证据'UILabel'的字体属性是外观可代理的。我稍后会做一个实验。 –

+0

快速浏览 - 没有'UILabel'属性被标记为外观代理系统支持。所以,循环一切似乎是你最好的选择。 –

相关问题