构建一个RenderTree
RenderTree 负责接收 LayoutTree 的布局结果进行绘制。
注意:绘制任务现在已经在LayoutTree中写好了,需要将绘制任务从LayoutTree中迁移到RenderTree中
需要创建一个名为 RichView 的自定义 UIView 来负责绘制,同时 RichView 也是用户直接使用的富文本渲染器。
RichView 负责接收一个用户构造的ElementTree。
RichView 有一个 layout 方法,负责完成布局,函数签名如下;layout 方法可以在子线程调用,完成子线程布局和算高。
public func layout(_ preferWidth: CGFloat) -> CGSize {
...
}