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

2017-08-01  本文已影响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中使用自定义字体的地方都换成系统字体,运行,没问题。

上一篇 下一篇

猜你喜欢

热点阅读