我有一个CAShapeLayer,并试图通过将它传递给CGContextDrawLayerAtPoint来绘制它,但得到一个有关将一个CAShapeLayer * __ strong的可保留参数传递给期望CGLayerRef的函数的错误。CAShapeLayer可以传递给CGContextDrawLayerAtPoint吗?
我已经做了一些浏览,但无法弄清楚如何转换它/将CAShapeLayer桥接到CGLayerRef。
如果它不可能转换,那么CAShapeLayer可以使用CGLayerCreateWithContext创建吗?
我在做的是用UIBezierPath创建一个图形,然后创建一个CAShapeLayer并将其路径设置为UIBezierPath,然后我想显示它。我可能使用addSublayer来显示形状图层但是我要在多个不同的点显示相同的形状,而不是添加多个我打算使用CGContextDrawLayerAtPoint在不同的点上显示它的子图层。
请参阅我的“罗盘”示例,其中复杂绘图由许多子图层组成。别担心。要开心。 http://www.apeth.com/iOSBook/ch16.html – matt
谢谢,是的,我被术语层的双重含义弄糊涂了(我没有注意到CA和CG部分)。因此,有几十个子层在很大程度上不是无效的? – Gruntcakes
不要绘制它们。现在,你开始动画/滚动所有这些,这可能是一个问题。但是让它们只显示在屏幕上 - 没问题,这就是屏幕_is_,它是一个层的渲染树。你在iOS屏幕上看到的一切都是一层。 – matt