打印iOS系统中可用的字体
for (NSString *fontFamilyName in [UIFont familyNames]) {
NSLog(@"family: '%@'", fontFamilyName);
for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
NSLog(@"\tfont:'%@'", fontName);
}
NSLog(@"--------------");
}
部分打印结果:
2018-02-27 13:54:47.709188+0800 testBanner[14732:429085] font:'HiraginoSans-W6'
2018-02-27 13:54:47.709867+0800 testBanner[14732:429085] --------------
2018-02-27 13:54:47.710253+0800 testBanner[14732:429085] family: 'PingFang SC'
2018-02-27 13:54:47.710507+0800 testBanner[14732:429085] font:'PingFangSC-Medium'
2018-02-27 13:54:47.710716+0800 testBanner[14732:429085] font:'PingFangSC-Semibold'
2018-02-27 13:54:47.711009+0800 testBanner[14732:429085] font:'PingFangSC-Light'
2018-02-27 13:54:47.711529+0800 testBanner[14732:429085] font:'PingFangSC-Ultralight'
2018-02-27 13:54:47.711665+0800 testBanner[14732:429085] font:'PingFangSC-Regular'
2018-02-27 13:54:47.711768+0800 testBanner[14732:429085] font:'PingFangSC-Thin'
2018-02-27 13:54:47.711979+0800 testBanner[14732:429085] --------------
2018-02-27 13:54:47.712102+0800 testBanner[14732:429085] family: 'Myanmar Sangam MN'
从UI拿到的设计图中字体基本上都是PingFangSC的,.iOS9.0以后系统自带了平方字体PingFangSC,但是在iOS9.0以前,是没有平方字体PingFangSC的。之前代码实现的实现的时候没有注意该问题,导致代码UIFont *font = [UIFontfontWithName:@"PingFangSC-Regular"size:15]
在iOS8系统上运行font结果会为nil, 最终将由系统决定字体和字体大小,与设计师的设计图中字体效果会不一样。
解决方案:
1)判断系统,在9.0及以上系统中使用PingFangSC字体,在低版本中使用其他字体代替
2)导入PingFangSC字体