网上有很多关于怎么在iOS系统中添加自定义字体的文章,比如iOS使用自定义字体IOS中怎么使用微软雅黑字体 但是要么就是太笼统要么就是有些许的错误,导致我为了简单的添加一个中文字体竟然浪费了近一个小时。所以,我参照这两篇文章,做一个总结。

这两篇文章虽然都条理清晰地描述了怎样在iOS中添加自定义字体,但仍不能让人一次就能正确操作:

1. 将准备好的字体文件加入项目中,一般放在resources文件夹中

导入字体

2. 查看Build Phases—Copy Bundle Resources,确保刚添加的字体文件在列表中,如果没有,则通过底部的加号手动添加到此处

Build Phases设置

3. 在info.plist文件中添加字体名

(1)查找Fonts provided by application,如果没有则在info.plist中新添加一行
(2)将加入的字体名连同扩展名填在这里
info.plist设置

4. 在Mac下双击字体文件,在标题栏中找到字体的fontName

这个名字不是真正的写到代码中的名字,只是给下边查找真正的名字做个参考。
Mac下字体名

5. 打印出系统所有的字体名,查找到导入字体的字体名

在程序viewDidLoad中加载一下一段代码

1
2
3
4
5
6
7
8
NSArray *familyNames = [UIFont familyNames];
for( NSString *familyName in familyNames ){
printf( "Family: %s \n", [familyName UTF8String] );
NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
for( NSString *fontName in fontNames ){
printf( "\tFont: %s \n", [fontName UTF8String] );
}
}

运行viewDidLoad,参考上一步中的字体名“微软雅黑”,在控制台搜索micro,则可以很快搜到相应的名称,注意真正要的是Family,而不是font。
打印字体名

6. 在项目中使用字体

1
[UIFont fontWithName:@"Microsoft YaHei" size:20];

7. 注意事项

注意在info.plist中添加字体名称和扩展名时确保扩展名为.ttf结尾,曾有朋友不小心写成.tff,导致字体始终显示不出来,这种错误还不易被发现。