进入公司后接到一个项目,项目是按照苹果6的界面开发,字体的标注完全按照苹果6的像素来设定的,但是有一个问题,程序员写的字体大小不能按照界面的大小适配,拿到代码后要修改字体,如果一个一个的修改,工程量就非常大,于是就想到用runtime来动态改变字体大小,这样节约了大量的时间,runtime在这里就不过多的叙述,可以到网上了解,现附上代码以备后用:
#import "UIFont+myFont.h"
#import <objc/runtime.h>
@implementation UIFont (myFont)
+(void)load
{
//将系统方法替换成我们自己写的FontOfSize
Method systemFontMethod = class_getClassMethod([UIFont class], @selector(systemFontOfSize:));
Method myFontmethod = class_getClassMethod([UIFont class], @selector(myFontMethod:));
method_exchangeImplementations(systemFontMethod, myFontmethod);
}
+(instancetype)myFontMethod:(CGFloat)size
{
//调用自己写的字体方法
UIFont *font = [self myFontMethod:[MyTool autoScaleWidth:size]];
return font;
}
@end
这样程序的字体大小就会按照屏幕的不同去适配.因为项目紧急没有来及优化代码,后续优化后还会更新.