当 iOS 系统默认字体无法满足需求…

fontWithName

UIFont 最常用的 API:

  • + (UIFont *)systemFontOfSize:(CGFloat)fontSize; 系统默认常规字体。
  • + (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize; 系统默认常规粗体。
  • + (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize; 系统默认常规斜体。

其实 Apple 还是给我们提供了使用很多其他字体的选择。

+ (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;

那么,如何获取 fontNamefontName 对应的字体长什么样?

获取 fontName

1
2
3
4
5
6
NSMutableArray *allFontNames = [NSMutableArray array];
for (NSString *familyName in [UIFont familyNames]) {
NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
[allFontNames addObjectsFromArray:fontNames];
}
NSLog(@"%@", allFontNames);

fontName 对应的字体

写了个小 Demo 来显示所有的字体。



动态下载苹果提供的多种中文字体

Apple Sample Code

唐巧的博客 - 动态下载苹果提供的多种中文字体

字体文件路径

/private/var/mobile/Library/Assets/com_apple_MobileAsset_Font

参考文档

http://devstreaming.apple.com/videos/wwdc/2013/223xex5xsgdfh1ergtjrqwoghbj/223/223.pdf