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

项目开发过程中,根据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);

此致,敬礼,收工~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容