ここに私のアニメーションコードです:CATransformLayerは暗黙のアニメーションをサポートしていませんか?
CGFloat zDistance = 850;
CGFloat scaleFactor = BACK_COVER_WIDTH/self.transformLayer.bounds.size.width;
CATransform3D rotation = CATransform3DMakeRotation(M_PI, 0.0, 1.0, 0.0);
CATransform3D scale = CATransform3DMakeScale(scaleFactor, scaleFactor, 0.0);
CATransform3D transform = CATransform3DConcat(rotation, scale);
transform.m34 = 1.0/-zDistance;
CGPoint location = CGPointMake(CGRectGetMidX(self.layer.frame), CGRectGetMidY(self.layer.frame));
[CATransaction begin];
[CATransaction setAnimationDuration:1.0];
self.transformLayer.transform = transform;
self.transformLayer.position = location;
[CATransaction commit];
self.transformLayer
は2つのサブレイヤ、フロント用と背面に1つ(私は「フリップ」効果を作成しています)とCATransformLayer
です。しかし、このコードはアニメーションなしで位置とトランスフォームを設定するだけです。だから、transform
は暗黙的なアニメーションをサポートしていない可能性があるので、私はそれを取り出して位置を設定しようとしましたが、どちらもアニメーション化されませんでした(そして暗黙のアニメーションをサポートしていることは確かです)。
私は何か間違っているのですか、CATransformLayer
は暗黙のアニメーションをサポートしていませんか?ドキュメントは、それをサポートしていないことについて何も言わないので、私はそれを仮定しています。
編集:これは、Mac OS X用で、iOSの
明示的なアニメーションを試しましたか? –