据我所知,我需要一个UIView(或UIView的子类)来在屏幕上显示CALayer,对吗?
那么,使用CALayer节省内存有什么意义呢?我看到的唯一一点就是当我向CALayer添加几个子层时。然后,对于所有不同的树类型,如表示树,渲染树等,这些子图层将不会被复制3次。是吗?
答案 0 :(得分:3)
您可以将CALayer
添加为另一个CALayer
的子图层。每个单独的层都不必由视图支持,但层次结构中的根层必须由UIView
支持。
关键是不要避免拥有CALayer
的副本,这些副本非常轻量级,但是要避免拥有UIViews
的副本,或者更具体地说,是UIView
的图形上下文的副本}秒。那些占用了更多的记忆。