CATransaction持续时间不起作用

时间:2011-10-05 22:52:21

标签: objective-c core-animation

我在CATransaction中设置了一些CALayer变换和边界修改。但是,无论我使用的方法(键值,setAnimationDuration)都没有动画,更改都会完成,但不会立即进行转换。 你知道为什么吗? 谢谢!

   /* CALayer*layer=[CALayer layer];
        layer.bounds =AnUIImageView.bounds;
        layer.contents=AnUIImageView.layer.contents;
        [AnotherUIImageView.layer addSublayer:layer];

        CGPoint thecentre=AnUIImageView.center;

        CALayer* layerInTarget=[AnotherUIImageView.layer.sublayers lastObject];
        [layerInTarget setPosition:[self.view convertPoint:thecentre toView:AnotherUIImageView]];
        AnUIImageView.layer.hidden=YES;

* / //上面的代码有效,我证明它是完整的

        [CATransaction begin];
        [CATransaction setValue:[NSNumber numberWithFloat:2.0f]
                         forKey:kCATransactionAnimationDuration];
       layerInTarget.position=[self.view convertPoint:AnotherUIImageView.center toView:AnotherUIImageView];
       layerInTarget.transform=CATransform3DMakeScale(0.6,0.6,0.6);
        [CATransaction commit];

1 个答案:

答案 0 :(得分:7)

CALayer相关联的

UIView(通过view.layer访问它们)不参与隐式动画,无论您如何配置{{1} CATransaction }}。您需要使用显式动画(使用CAAnimation的相应子类),或者您需要使用UIView动画。