犹落

不雨花犹落,无风絮自飞。

0%

iOS的Label渲染性能对比

最近做了UILabel和YYLabel的FPS性能测试,结论就是UILabel在主线程的渲染太耗时了,尤其在中文和Emoji较多的场景。

然后,由于YYLabel过于复杂,且与UILabel的运行效果存在不一致(如行距),还有较多的issues未得到解决,于是自己做了一个极其简单的异步渲染的WJAsyncLabel,可以看到排版与UILabel的运行效果是一致的。

异步的原理与YYLabel基本一致,都是异步绘制生成Image对象,传递给CALayer。

1
weakSelf.layer.contents = (__bridge id _Nullable)(image.CGImage);

绘制是直接基于-[NSAttributedString drawInRect:],保持与原生一致的效果。

更详细的代码与图文介绍请前往Github