项目开发过程中,根据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);
此致,敬礼,收工~
网友评论