由于之前在做項(xiàng)目的時(shí)候根據(jù)需求只單獨(dú)做了iPhone版,所以適配做的很爛前酿。只是用比例適配適配了從iPhone4到iPhone6機(jī)型的頁(yè)面湿痢,文字適配壓根就沒做,12月底老板突然說(shuō)我們的應(yīng)用怎么不能在iPad上跑偎谁,我當(dāng)時(shí)就無(wú)語(yǔ)了飘弧,您老之前從來(lái)沒說(shuō)過(guò)啊。沒辦法了邪狞,整個(gè)項(xiàng)目全部要重新做適配,不過(guò)幸好我這個(gè)項(xiàng)目是純代碼茅撞,還有得玩帆卓。既然要做,這次就做的徹底一點(diǎn)米丘。我放棄了iPhone5以下機(jī)型的適配剑令,直接從iPhone5開始適配,到iPhoneh7P拄查,再到iPad吁津。廢話不多說(shuō),先貼一下代碼.
.h
#import@interface UIFont (KaeExtention)
+ (nullable UIFont *)kaeFont:(CGFloat)font withStyle:(int)type withFamilyName:(nullable NSString *)fontName;
@end
.m
#import "UIFont+KaeExtention.h"
@implementation UIFont (KaeExtention)
+ (nullable UIFont *)kaeFont:(CGFloat)font withStyle:(int)type withFamilyName:(nullable NSString *)fontName
{
CGFloat sizeScale;
if (isPad)
{
sizeScale = 1.3;
}else
{
if (DEF_SCREEN_WIDTH <= 320)
{
sizeScale = 1;
}else if(DEF_SCREEN_WIDTH > 320&&DEF_SCREEN_WIDTH <= 375)
{
sizeScale = 1.1;
}else
{
sizeScale = 1.2;
}
}
if (fontName != nil)
{
return [UIFont fontWithName:fontName size:sizeScale*font];
}else
{
if (type == 0)
{
return [UIFont systemFontOfSize:sizeScale*font];
}else
{
return [UIFont boldSystemFontOfSize:sizeScale*font];
}
}
}
@end
因?yàn)闀r(shí)間倉(cāng)促堕扶,我這里只是寫了一個(gè)簡(jiǎn)單的分類碍脏,具體到復(fù)雜的文字適配還沒有去完善,不過(guò)對(duì)于我的項(xiàng)目是夠用了稍算,因?yàn)槲业捻?xiàng)目里只涉及到系統(tǒng)字體大小和粗細(xì)的適配典尾。如果是系統(tǒng)外導(dǎo)入的字體要適配粗細(xì)大小的話這個(gè)分類需要作些許調(diào)整,另外貌似系統(tǒng)外導(dǎo)入的字體粗細(xì)不能直接設(shè)置糊探,可能需要重繪钾埂,大家也可以嘗試一下河闰,這里主要是給眾多和我一樣的菜鳥一些文字適配的思路,如果哪里說(shuō)的不對(duì)還望多多指教褥紫。