我有一个自定义生成的字体,我已添加到Xcode项目中。我已经按照添加字体的所有指示步骤进行操作,当我在IB中设置UILabel或UITextField作为自定义字体时效果很好,但是当我在运行时设置自定义字体时,它显示为iOS默认字体。我已经检查了UIAppFonts列表并用NSLog打印出来,显示全名,所以我知道当我调用[UIFont fontWithName:@"字体名称" size:s]它是正确的名称。可能是什么问题?
下面的字体名称查找方法(此方法提供了在自定义UIFont实例化中使用的错误名称):
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSArray* fontFiles = [infoDict objectForKey:@"UIAppFonts"];
for (NSString *fontFile in fontFiles) {
NSURL *url = [[NSBundle mainBundle] URLForResource:fontFile withExtension:NULL];
NSData *fontData = [NSData dataWithContentsOfURL:url];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)fontData);
CGFontRef loadedFont = CGFontCreateWithDataProvider(fontDataProvider);
NSString *fullName = CFBridgingRelease(CGFontCopyFullName(loadedFont));
CGFontRelease(loadedFont);
CGDataProviderRelease(fontDataProvider);
NSLog(@"FULL NAME:%@",fullName);
}
答案 0 :(得分:1)
尝试执行此代码:
for (NSString* family in [UIFont familyNames]) {
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family]) {
NSLog(@" %@", name);
}
}
您是否看到了您尝试使用的字体名称?