【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,274評論 3 283
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,461評論 25 708
  • ''那些假扮的人 深情的看著我哭 等被我發現假扮身份之後 又嘲笑我 然後蹦蹦跳跳地走掉?'' 家變得異常華麗,透過...
    晉小旖閱讀 240評論 0 0
  • 有沒有人和我一樣,想要的太多? 我想要的太多太多,想去西藏的拉薩,想登珠穆朗瑪峰,想去云南的大理,想看看蒼山洱海,...
    未支閱讀 360評論 0 0
  • 純粹的人 平淡卻不平凡的人生 生活中的每一天都充滿了無數的美好 行走天下的每時每刻 都能感受到溫暖、陽光,愛和力量...
    阿飛的時光機閱讀 227評論 0 0