多语言展示
当前在线:1197今日阅读:55今日分享:34

iOS如何使用Runtime全局更换字体

Runtime运行时机制非常好用的一个用处是一键全局更换应用的字体。
工具/原料
1

Xcode

2

Mac

方法/步骤
1

基于Runtime运行时机制的交换方法实现,首先在工程中新建一个Category继承于UILabel命名为FontCategory,如下:

2

在新建类UILabel+FontCategory.m中导入恩伐荡#import 头文件,此头霜驾文件是Runtime框架的载体,如下:

3

在UILabel+FontCategory.m中实现+ (void)load;方法,load方法是在main函数调用之前被OC运行时所调用的钩子方法,同时最重要的一点是每个类的load方法都只会调用一次,所以我们在load方法里面实现具体的方法畜菊交换,具体实现如下:

4

具体的自定义交换方法实现如下,在交换方法里面实现font的更改,字体名称使用指定的字体库中的即可,如下:

5

通常我们在使用过程中可能会出现某个label的文本不需要更改字体的情况,这个时候需要我们对此进行特殊处理,使用Tag标识的方法来进行判断然后处理,例如我们可以将不需要更改的label文本的tag设置为10000,在使用运行时交换时遇此tag不进行字体更改,具体实现如下:

推荐信息