iOS 13 CoreText performance note
2019-11-12 本文已影响0人
流年划过颜夕
在iOS13中发现使用Coretext,日志中会出现CoreText performance note,甚至抛出异常:
字体.png
原因应该是Apple为了提升性能升级了底层的字体,导致以前的字体不匹配,所以要成功调用对应的Api,需要按照上诉日志中的提示进行对应的适配。
具体做法如下:
1.通过set a breakpoint定位到源码出现问题的地方
2.将".SFUI-Regular"替换为"TimesNewRomanPSMT",进行调用
NSString *name =self.font.fontName;
if ([name isEqualToString:@".SFUI-Regular"]) {
name = @"TimesNewRomanPSMT";
}
CTFontRef fontRef = CTFontCreateWithName((CFStringRef)name, self.font.pointSize, NULL);
if (fontRef)
{
_fontAscent = CTFontGetAscent(fontRef);
_fontDescent = CTFontGetDescent(fontRef);
_fontHeight = CTFontGetSize(fontRef);
CFRelease(fontRef);
}
以上