如何在育儿时覆盖CALayers的绘制顺序

时间:2012-08-10 02:21:10

标签: ios drawing core-animation calayer

我有点难题。我想按照一定的顺序堆叠CALayers来绘制另一个,但我也希望从这些层带来的继承转换中受益。

想象一下身体,上臂,前臂和手。我想为手臂和手设置锚点和父母,这样我就可以旋转手臂,手就会跟随。

这就是我的所作所为:

CALayer *body = [CALayer layer];
body.path = @"body.png";
body.anchorPoint = ap1;
CALayer *arm = [CALayer layer];
arm.path = @"arm.png";
arm.anchorPoint = ap2;
CALayer *hand = [CALayer layer];
hand.path = @"hand.png";
hand.anchorPoint = ap3;
[myView.layer addSublayer:body];
[myView.layer addSublayer:arm];
[myView.layer addSublayer:hand];
hand.parent = arm;
arm.parent = body;

一切都很好,但如果我希望身体与手臂和手重叠怎么办?有没有办法保持这个父母顺序,但覆盖绘图顺序?这样做的任何聪明的想法?

1 个答案:

答案 0 :(得分:5)

子层总是在他们的超级层面前绘制。你无法改变它。

兄弟姐妹(同一超级图层的子图层)可以使用zPosition属性来更精细地控制渲染顺序。顺便说一下,有很多子层有一些性能影响,所以在你获得太多CALayer之前,我会转向更加注重图形的框架。

相关问题