我在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];发布于 2011-10-06 06:58:03
与UIView关联的CALayer(如在中,通过view.layer访问)不参与隐式动画,无论您如何配置您的CATransaction。您要么需要使用显式动画(使用适当的CAAnimation子类),要么需要使用UIView动画。
https://stackoverflow.com/questions/7668677
复制相似问题