最近做了
UILabel和YYLabel的FPS性能测试,结论就是UILabel在主线程的渲染太耗时了,尤其在中文和Emoji较多的场景。然后,由于
YYLabel过于复杂,且与UILabel的运行效果存在不一致(如行距),还有较多的issues未得到解决,于是自己做了一个极其简单的异步渲染的WJAsyncLabel,可以看到排版与UILabel的运行效果是一致的。异步的原理与
YYLabel基本一致,都是异步绘制生成Image对象,传递给CALayer。weakSelf.layer.contents = (__bridge id _Nullable)(image.CGImage);
绘制是直接基于
-[NSAttributedString drawInRect:],保持与原生一致的效果。更详细的代码与图文介绍请前往Github。
Loading Comments...