iOS开发:关于iPhone在不同尺寸屏幕适配字体大小的方法

APP开发中,美工给的图和字体都是按照6p的尺寸给的,代码设定字体后,大屏手机还好,小屏手机就不好看了,设置字体的地方太多,如果一个个去修改,那么将很繁琐。

此时我们可以通过新建一个UIFont的类别(category)来重写系统的systemFontOfSize方法

代码如下:

UIFont+MyFont.h

#import

@interface UIFont (MyFont)

 +(UIFont *)systemFontOfSize:(CGFloat)fontSize; 

 @end

UIFont+MyFont.m

#import "UIFont+MyFont.h"

#define screenHeight [UIScreen mainScreen].bounds.size.height

@implementation UIFont (MyFont)

+(UIFont*)systemFontOfSize:(CGFloat)fontSize{

    //根据屏幕尺寸判断的设备,然后字体设置为0.8倍   

    if (screenHeight < 568) {        

        fontSize = fontSize * 0.8;    

    }         

    UIFont *newFont = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];    

    UIFontDescriptor *ctfFont = newFont.fontDescriptor;    

    NSString *fontString = [ctfFont objectForKey:@"NSFontNameAttribute"];    

    //使用fontWithName 设置字体    

    return [UIFont fontWithName:fontString size:fontSize];

}

@end

示例如下图:

iOS开发:关于iPhone在不同尺寸屏幕适配字体大小的方法_第1张图片

注:三个#pragma是为了消除类别重写系统API时带来的警告。

你可能感兴趣的:(iOS开发:关于iPhone在不同尺寸屏幕适配字体大小的方法)