開始するための基本的なコードは次のとおりです。
[UIView transitionWithView:self.view duration:2.0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^ {
CALayer *layer1 = leftband.layer;
layer1.anchorPoint = CGPointMake(0, 0.5);
CATransform3D rotationAndPerspectiveTransform1 = CATransform3DIdentity;
rotationAndPerspectiveTransform1.m34 = 1.0 / -500;
rotationAndPerspectiveTransform1 = CATransform3DRotate(rotationAndPerspectiveTransform1, DegreesToRadians(-180.0f), 0.0f, 1.0f, 0.0f);
layer1.transform = rotationAndPerspectiveTransform1;
CALayer *layer2 = rightband.layer;
layer2.anchorPoint = CGPointMake(0, 0.5);
CATransform3D rotationAndPerspectiveTransform2 = CATransform3DIdentity;
rotationAndPerspectiveTransform2.m34 = 1.0 / -500;
rotationAndPerspectiveTransform2 = CATransform3DRotate(rotationAndPerspectiveTransform2, DegreesToRadians(180.0f), 0.0f, 1.0f, 0.0f);
layer2.transform = rotationAndPerspectiveTransform2;
}
completion:nil {
}];
左バンドと右バンドは2つのUIImageViewです。私が望む効果は、左バンドがY軸に沿って左方向に変換されてアニメーション化することです。そして、右バンドはそのY軸に沿って右に向かって同じことをします。
ただし、上記のコードでは、左右両方のイメージビューが同じ方向にアニメーション化されます(左方向にのみ発生します)。アンカーポイントの理解が間違っていると思います。回転変換で-180°と+180°の両方を使用すると、左向きのアニメーションになります。
私はここで何が間違っているのですか?