【IOS】 利用 Runtime实现字体自动化屏幕适配

创建一个 UIFont 的分类

#import <objc/runtime.h>

#define UISize_With 375  //设计参考的屏幕宽度

@implementation UIFont (JDRuntimeFont)

+(void)load{
    //获取替换后的类方法
    Method newMethod =class_getClassMethod([self class], @selector(adjustFont:));
    //获取需要替换的类方法
    Method method = class_getClassMethod([self class],@selector(systemFontOfSize:));
    //交换方法
    method_exchangeImplementations(newMethod, method);

}


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

@end

搞定!

Demo地址:https://github.com/yuying2012/WJDStudyLibrary

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

推荐阅读更多精彩内容

  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,303评论 3 283
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,015评论 25 709
  • ''那些假扮的人 深情的看著我哭 等被我發現假扮身份之後 又嘲笑我 然後蹦蹦跳跳地走掉⋯'' 家變得異常華麗,透過...
    晋小旖阅读 245评论 0 0
  • 有没有人和我一样,想要的太多? 我想要的太多太多,想去西藏的拉萨,想登珠穆朗玛峰,想去云南的大理,想看看苍山洱海,...
    未支阅读 362评论 0 0
  • 纯粹的人 平淡却不平凡的人生 生活中的每一天都充满了无数的美好 行走天下的每时每刻 都能感受到温暖、阳光,爱和力量...
    阿飞的时光机阅读 229评论 0 0