气质程序媛养成记第五篇 -- 使用runtime进行字体大小适配

2017-04-10  本文已影响20人  爱打码滴小燕子

项目开发过程中,根据UI给定的字体和屏幕尺寸进行比例适配是最基本的要求。其实很简单,一个分类就可以搞定了。

首先,创建一个UIFont的分类

1.写一个类方法,通过当前屏幕尺寸适配文字大小,此处YourUIScreen为UIUI设计原型图的手机尺寸宽度

+(UIFont *)adjustFont:(CGFloat)fontSize{
    UIFont *newFont=nil;
    newFont = [UIFont adjustFont:fontSize * [UIScreen mainScreen].bounds.size.width/YourUIScreen];
    return newFont;
}

2.runtime最常用的一个功能就是拦截系统方法,进行方法替换,在这里我们用到的就是这一特性。
在UIFont的Load方法里,找到需要替换的系统方法,用我们自己的方法来替换,代码如下:

    //获取替换后的类方法
    Method newMethod = class_getClassMethod([self class], @selector(adjustFont:));
    //获取替换前的类方法
    Method method = class_getClassMethod([self class], @selector(systemFontOfSize:));
    //然后交换类方法
    method_exchangeImplementations(newMethod, method);

此致,敬礼,收工~

上一篇下一篇

猜你喜欢

热点阅读