iOS 10 UIFont问题

字体宏

#define FontPingFangSC_Regular(s) IS_IOS_VERSION(9.0)?[UIFont fontWithName:@"PingFangSC-Regular" size:s]:[UIFont systemFontOfSize:s/1.0f]

#define FontPingFangSC_Light(s) IS_IOS_VERSION(9.0)?[UIFont fontWithName:@"PingFangSC-Light" size:s]:[UIFont systemFontOfSize:s/1.0f]

#define FontPingFangSC_Medium(s) IS_IOS_VERSION(9.0)?[UIFont fontWithName:@"PingFangSC-Medium" size:s]:[UIFont systemFontOfSize:s/1.0f]

#define FontPingFangSC_Semibold(s) IS_IOS_VERSION(9.0)?[UIFont fontWithName:@"PingFangSC-Semibold" size:s]:[UIFont systemFontOfSize:s/1.0f]"

//UITableViewCell中动态计算高度的方法
+ (CGFloat) heightForCellWithData:(NSDictionary *)data {
CGFloat imageHeight = (ScreenWidth-15*2)*38/69; CGFloat contentHeight = [Helper getSizeWithStr:[NSString stringWithFormat:@"%@",data[@"introduction"]] width:(ScreenWidth-15*2) font:FontPingFangSC_Semibold(14)].height; CGFloat hideButton = 0; return imageHeight+15+contentHeight+hideButton;
}

问题表现:

  • iOS 9.0+ 高度计算正常
  • iOS 10.0+ 6p/6sp/7p 种高度计算不正常

问题场景

使用.xib创建的UITableViewCell,使用.xib的方案设置的UITableViewCell的布局和字体,字号。

问题排查

...

问题原因

///iOS 10 plus 设备中 systemFont 跟自定义font 的高度不统一,由于xib中iOS10会显示sc font,但是代码计算采用的font 宏定义在iOS10中却计算的是systemfont的高度,所以造成iOS10 p设备中字体计算有偏差

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,143评论 1 6
  • 定义了一些常用的宏,写代码的时候用起来挺方便的,添加了pch文件,设置了相对路径;设置pch文件相对路径的方法:设...
    SnailLi阅读 1,716评论 0 1
  • 1、禁止手机睡眠 [UIApplication sharedApplication].idleTimerDisab...
    FF_911阅读 1,426评论 0 3
  • 以前,孩子他妈说过很多次: 记录你想下的事情,以后是和回顾和念想。 而我,始终未付诸行动——拖延症和懒癌晚期——倒...
    秦承毅69阅读 221评论 0 0
  • 三个男人喝花酒,唱荤歌。 其中一个鲁大,自称正人君子,实在不愿苟同其间,因为他知道其中一位姓马的老头,会对陪酒女...
    清霞仙子阅读 1,254评论 0 1