iOS字型適配
阿新 • • 發佈:2019-09-19
本處使用375為設計標準
1.使用執行時方法
#import "UIFont+AdjustFont.h" #import <objc/runtime.h> @implementation UIFont (AdjustFont) + (void)load { Method newMethod = class_getClassMethod([self class], @selector(adjustFont:)); Method method = class_getClassMethod([self class], @selector(systemFontOfSize:)); //Method method = class_getClassMethod([self class], @selector(systemFontOfSize:weight:)); method_exchangeImplementations(newMethod, method); } + (UIFont *)adjustFont:(CGFloat)fontSize { UIFont *newFont = nil; newFont = [UIFont adjustFont:fontSize * [UIScreen mainScreen].bounds.size.width / 375]; return newFont; } @end
2.使用巨集定義方法
#define SCREEN_SIZE [[UIScreen mainScreen] bounds]
#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width
#define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
#define ADJUST_SIZE(value) (SCREEN_WIDTH == 375 ? value : value * SCREEN_WIDTH / 375)
#define SYSTEM_FONT(value) [UIFont systemFontOfSize:ADJUST_SIZE(value)]
#define SYSTEM_FONT_NAME(name,value) [UIFont fontWithName:name size:ADJUST_SIZE(value)]
///蘋方-簡 常規體
#define SYSTEM_FONT_PINGFANG_SC_REGULAR(value) [UIFont fontWithName:@"PingFangSC-Regular" size:ADJUST_SIZE(value)]
///蘋方-簡 中黑體
#define SYSTEM_FONT_PINGFANG_SC_MEDIUM(value) [UIFont fontWithName:@"PingFangSC-Medium" size:ADJUST_SIZE(value)]
///蘋方-簡 中粗體
#define SYSTEM_FONT_PINGFANG_SC_SEMIBOLD(value) [UIFont fontWithName:@"PingFangSC-Semibold" size:ADJUST_SIZE(value)]