将CALayer添加为子图层,然后设置动画

时间:2009-05-04 09:07:27

标签: iphone cocoa-touch

这就是我想要做的事情:将CALayer作为子图层添加到antoher图层,然后立即为其设置动画。添加图层的位置在当前视图之外,并且应该“飞”到视图中。这一切都发生在UIViewController。

以下是我的代码基本上是这样的:

mysublayer.position = CGPointMake(-160.0, -250.0);
[self.view.layer addSublayer:mysublayer];   

[CATransaction begin]; // outer transaction
[CATransaction setValue:[NSNumber numberWithFloat:2.0f]
                 forKey:kCATransactionAnimationDuration];

mysublayer.position = CGPointMake(160.0, 250.0);
mysublayer.opacity = 1.0;

[CATransaction commit]; 

发生的情况是,子层立即出现在新位置(160,250)而没有动画。我认为我做了一些根本性的错误,而且在我试图为图层设置动画的那一刻,它并没有真正添加到父图层,对吗?

那么,为了将其包装起来,如何在将新子图层添加到父图层后为其设置动画?

谢谢和亲切的问候,汉斯

1 个答案:

答案 0 :(得分:0)

你应该使用[CABasicAnimation animationWithKeyPath:@“position”]