首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将字体名称捆绑在我的iOS应用程序中?

如何将字体名称捆绑在我的iOS应用程序中?
EN

Stack Overflow用户
提问于 2013-09-01 02:07:40
回答 1查看 572关注 0票数 1

我从Xcode app-info.plist (使用“应用程序提供的字体”键)在我的iOS应用程序中添加了一些自定义的真正类型字体。

iOS在应用程序中自动识别它们为可用字体,我可以使用UIFont familyNames获取所有字体家族的名称,包括iOS提供的系统字体。

但我想知道哪些字体来自iOS系统字体,哪些字体来自我在包中添加的自定义字体。

是否有任何编程方法来区分捆绑字体和系统字体,或者仅仅是一种获得所有绑定字体名称的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-01 02:25:07

这是明目张胆地从another answer中删除的,它应该为您提供捆绑字体中的所有字体名称。

代码语言:javascript
复制
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSArray* fontFiles = [infoDict objectForKey:@"UIAppFonts"];

for (NSString *fontFile in fontFiles) {
    NSLog(@"file name: %@", fontFile);
    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(@"font name: %@", fullName);
}

这个答案将为您提供正确的字体名称,但如果您只想从信息列表中获得字体名称:

代码语言:javascript
复制
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSArray *arrayOfFontStringNames = infoDict[@"UIAppFonts"];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18554554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档