美文网首页
iOS批量修改字体和删除自定义字体的坑

iOS批量修改字体和删除自定义字体的坑

作者: 一只知更鸟的人生 | 来源:发表于2017-08-01 13:14 被阅读68次
    • 之前为了与设计人员设计的字体相匹配,导入了一个自定义的字体库,然后觉得打包后包比较大,所以要删除这些自定义字体,但是项目中所有的字体都是使用自定义的,要是挨个去替换所花时间也是够够的了,还可能有漏网之鱼,但是使用下面的方法就可以进行批量替换。

    1. 批量替换字体

    // 定义一个UIFont的分类,然后让所有文件都引用这个分类
    #import <UIKit/UIKit.h>
    @interface UIFont (Custom)
    @end
    
    • 重写在项目中设置字体的方法
    #import "UIFont+Custom.h"
    
    @implementation UIFont (Custom)
    // 如果项目中都是使用下面的方法定义的字体,那就重写这个方法
    // 此处可以根据自己项目来决定重写哪个方法
    + (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize
    {
    //  返回系统字体
        return [UIFont systemFontOfSize:fontSize];
    }
    @end
    
    • 如果项目中之前都是使用的系统字体,要替换为自定义字体,那么重写下面的方法,
    + (UIFont *)systemFontOfSize:(CGFloat)fontSize
    {
        return [UIFont fontWithName:@"此处为自定义的字体名称" size:fontSize];
    }
    

    2. 删除自定义的字体

    删除info.plist中的字段

     Fonts provided by application
    

    然后删除字体库文件,批量替换自定义字体(见上面的方法)。
    但是在运行后发现直接崩溃,此时怀疑项目中还有地方引用着字体,xcode中搜索项目关键字没发现哪里有这个字体的名字。后来使用终端命令:

    grep -r --color=auto "HiraginoSansGB-W3" /Users/hp/Desktop/testAPP 
    

    可以寻找到包含这个字符串的地方,并且高亮显示,在很多xib文件中使用了自定义的字体。知道哪里引用了就好办,把xib中使用自定义字体的地方都换成系统字体,运行,没问题。

    相关文章

      网友评论

          本文标题:iOS批量修改字体和删除自定义字体的坑

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