现在的 APP 都极具个性与风格特点,APP界面中的文字自然也需要各种变化和改变,但是iOS 官方的字体并不能满足所有需求,下面我们就来看看如何在 iOS 的项目中使用自定义字体。
iOS 系统字体可在下面的网站进行查询
第一步 准备字体文件
一般如果需要自定义字体,美工都会准备好,如果没有的话就需要自己去网上搜索下载了,有.ttf、.odf等类型。
其实 Mac OS 中也自带了许多字体样式并提供.ttf字体文件
- 打开 launchpad 的其他目录,找到字体册
- 基本包括了常见的汉字以及其他特殊的字体。选中字体右键-在 Finder 中显示 即可找到该字体的文件
第二步 将字体文件导入工程
- 将准备好的字体文件导入工程中
- 前往
TARGETS -> Build Phases -> Copy Bundle Resources
确保刚添加的字体文件在列表中,否则需要手动加进来
第三步 配置 Info.plist
添加Fonts provided by application
并加入要使用的字体文件名称,这里可以设置多个字体
注意要填写 工程中字体文件的 文件名称+后缀
第四步 使用新字体
使用如下代码可以输出工程中所有可用的字体类型
在控制台输出的字体中 查找到新添加的字体名称,如果没有搜索到 说明添加失败。
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] );
}
}
配置成功后,即可使用新字体了!
self.Label.font = [UIFont fontWithName:@"Slicker" size:30];
一些注意事项
字体名称问题
在 info.plist文件中配置
在Fonts provided by application
下添加字体时,输入的是工程中的字体文件的名称+后缀确认使用的字体名称
在网上下载的字体文件中,很多时候文件的名称和字体的名称并不一致, info.plist中的字体文件名称并不一定就是字体的名称(宋体、黑体),若不一致则在[UIFont fontWithName:@"Slicker" size:30]
中使用并不会有对的效果。在上述输出工程所有字体中可以看到字体类型为数众多,很难分辨出哪个是新加的字体,那么如何快速确认下载的字体的名称到底是什么呢?
答案很简单,字体册。
使用字体册打开下载的字体文件,标题栏上的 名称 就是字体的实际名称了,也就是在代码中要使用的字体名称。
- 验证字体是否可用
有时候在网络上下载的字体文件会有损坏,无法正常使用,所以即使配置没有问题还是无法达到预期的效果,所以在使用字体前,最好先验证一下字体文件是否完好。验证方法也很简单:使用字体册安装字体。
如果安装失败或则出现警告,那么就需要换一个字体文件了。