由于项目中设计喜欢使用非ios默认字体,例如:PingFangSC;为了效果需要做一些兼容;
拿PingFangSC举例,因为此字体是ios9.0才引入的;故在ios9.0以下是不支持的,设置的size就会不生效;
解决办法:(只记录我自己的解决办法,其实方法有很多)
1.建立UIFont的分类
#import
NS_ASSUME_NONNULL_BEGIN
@interfaceUIFont (Extension)
/**
使用非系统默认字体设置请用此方法,会兼容系统没有的字体,例如:ios9.0以下没有PingFangSC字体
@param fontName 字体名
@param fontSize 字体大小
@return 字体
*/
+(UIFont*)fontWithNameStr:(NSString*)fontName size:(CGFloat)fontSize;
@end
NS_ASSUME_NONNULL_END
2.类的实现:
#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];