1. 程式人生 > >iOS字型適配

iOS字型適配

本處使用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)]