用CAMetalLayer数组替换CALayer数组

时间:2019-04-02 18:21:32

标签: arrays uiimageview calayer metal

我有一个绘画应用程序,它在任何给定时间通过CALayer交互式显示200个左右UIImageView数组中的内容。我得到了合理的性能,但是我想知道使用CAMetalLayer可以带来任何性能上的好处。特别是,我很好奇我是否可以直接将纹理拖拉到每个CAMetalLayer上而受益,并且一次堆叠/显示这么多CAMetalLayer时是否需要考虑硬件方面的问题。

在实现之前是否应该考虑任何陷阱,我是否应该继续使用UIImageView(或其他)来托管这些新的由Metal支持的子层?任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:1)

那是行不通的。您应该跟踪笔划的数据。例如,一个点数组将是一个笔划,然后您应具有一个这些笔划的数组。它可能只是点(x,y),或者可能还包含颜色,大小和其他变量。您应该知道描述中风需要什么。

然后使用它进行绘制(在那些位置标记)。要撤消操作时,只需从数组中的所有笔画开始绘制,直到n-1,n-2等...