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);
    }

以上

上一篇下一篇

猜你喜欢

热点阅读