iOS-自定义字体库

作者: MrJ的杂货铺 | 来源:发表于2017-08-24 09:50 被阅读223次

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

    1. 下载苹方字体
      苹方字体下载
    苹方字体ttf文件
    1. 导入字体文件
      将字体文件导入到工程中。
    字体导入.png
    1. 配置字体文件
      Info plist 下添加 Fonts provided by application,并在Fonts provided by application添加字体文件,名字需于字体文件完全保持一致。
    配置字体.png

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

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

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

    字体文件夹

    4.2. 打印

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

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

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

    xcode9 iOS11 上字体名字.png

    相关文章

      网友评论

        本文标题:iOS-自定义字体库

        本文链接:https://www.haomeiwen.com/subject/xdwjdxtx.html