由于項目中設(shè)計喜歡使用非ios默認字體,例如:PingFangSC薄坏;為了效果需要做一些兼容趋厉;
拿PingFangSC舉例,因為此字體是ios9.0才引入的胶坠;故在ios9.0以下是不支持的君账,設(shè)置的size就會不生效;
解決辦法:(只記錄我自己的解決辦法沈善,其實方法有很多)
1.建立UIFont的分類
#import
NS_ASSUME_NONNULL_BEGIN
@interfaceUIFont (Extension)
/**
?使用非系統(tǒng)默認字體設(shè)置請用此方法乡数,會兼容系統(tǒng)沒有的字體,例如:ios9.0以下沒有PingFangSC字體
?@param fontName 字體名
?@param fontSize 字體大小
?@return 字體
?*/
+(UIFont*)fontWithNameStr:(NSString*)fontName size:(CGFloat)fontSize;
@end
NS_ASSUME_NONNULL_END
2.類的實現(xiàn):
#import "UIFont+Extension.h"
@implementationUIFont (Extension)
+(UIFont*)fontWithNameStr:(NSString*)fontName size:(CGFloat)fontSize
{
? ? UIFont*textFont =nil;
? ? if(fontName && fontName.length>0)
? ? {
? ? ? ? textFont = [UIFontfontWithName:fontNamesize:fontSize];
? ? ? ? if(textFont ==nil) {
? ? ? ? ? ? textFont = [UIFontsystemFontOfSize:fontSize];
? ? ? ? }
? ? }
? ? else
? ? {
? ? ? ? textFont = [UIFontsystemFontOfSize:fontSize];
? ? }
? ? returntextFont;
}
@end
3.使用場景
UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectZero];
? ? titleLab.text=@"測試文字";
? ? titleLab.textColor= [UIColor colorWithHex:0x4A4A49];
? ? titleLab.font = [UIFont fontWithNameStr:@"PingFangSC-Medium" size: 16.0];
? ? [self addSubview:titleLab];