iOS-自定义字体库

今天,经过多次测试的项目,交付客户测试,却遭到当头一棒。crash!crash!crash!不断的crash。
原来是由于字体不支持的缘故,不直接测试调试的话,还真是很容易忽略这个问题。项目主要使用的是苹方字体,这是苹果ios9才引入的官方字体,iOS8是不支持的。若要兼容iOS8以上,那只能在项目中添加自定义字体了。
方法如下

  1. 下载苹方字体
    苹方字体下载
iOS-自定义字体库_第1张图片
苹方字体ttf文件
  1. 导入字体文件
    将字体文件导入到工程中。
iOS-自定义字体库_第2张图片
字体导入.png
  1. 配置字体文件
    Info plist 下添加 Fonts provided by application,并在Fonts provided by application添加字体文件,名字需于字体文件完全保持一致。
iOS-自定义字体库_第3张图片
配置字体.png

注意:此处必须是完整的文件名包含后缀。

  1. 检查字体文件是否导入
    4.1. 检查Build Phases 下的 copyBundleResources下是否导入了字体文件
Build Phases.png

注意此处必须是单独的字体文件,不能是如下图这种文件夹形式的。

iOS-自定义字体库_第4张图片
字体文件夹

4.2. 打印

  // 遍历获取字体名称
    for(NSString *fontFamilyName in [UIFont familyNames])
    {
        NSLog(@"family:'%@'",fontFamilyName);
        for(NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName])
        {
            NSLog(@"\tfont:'%@'",fontName);
        }
        NSLog(@"-------------");
    }
iOS-自定义字体库_第5张图片
字体名字.png
  1. 使用字体
textLabel.font = [UIFont fontWithName:@".PingFang-SC-UltraLight" size:17];

此处使用的名字,必须是如上图所示打印出来的名字

经测试发现,在xcode9beta6字体名字不一样,不只是不是测试版的缘故,如果不是的话,针对iOS11要单独适配了。

iOS-自定义字体库_第6张图片
xcode9 iOS11 上字体名字.png

你可能感兴趣的:(iOS-自定义字体库)