我正在尝试向Xcode 6添加多种字体。问题是当同一系列的多个样式例如:
“门施粗体” “门施薄”
当我打开这些字体时,我得到与原始字体文件相同的名称,如下所示:
当我添加这些字体时,用字体等更新.pList文件,我只能让“Mensch”工作。我不能得到任何子系列,这是因为尽管它们有变化,它们都被命名为“Mensch”。
有解决方法吗?你知道如何安装相同字体系列的多种字体样式吗?
答案 0 :(得分:0)
可能你已经安装了两个家庭。 Xcode6在“属性”选项卡中显示自定义字体,但如果您有来自同一字体系列的多个样式,则只显示其中一个。您可以使用子类来实现此功能。
首先使用以下代码查找已安装的字体名称:(Adding custom fonts to iOS app finding their real names)
static void dumpAllFonts() {
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"%@", fontName);
}
}
}
然后添加一个子类,并使用从前面的代码中获得的字体名称。 以下示例适用于UILabel。
@interface CustomFontLabel : UILabel
@end
@implementation CustomFontLabel
- (void)awakeFromNib {
[super awakeFromNib];
self.font = [UIFont fontWithName:@"Mensch" size:self.font.pointSize];
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.font = [UIFont fontWithName:@"Mensch" size:self.font.pointSize];
}
return self;
}
@end
在此之后,您可以从xib文件中将标签的类更改为CustomFontLabel。