レイヤーの下部が跳ね上がるレイヤーのアニメーションを作成しようとしています。上部に蝶番を付けたビューを考えてみてください。次に、ボタンが上下にアニメーションします。コンパクトの表紙みたいな。私が望むのは、標準的なフリップ アニメーションのようなものですが、片面だけを表示することです。アニメーションの構成に問題があります。
問題は、「ヒンジ」部分を作成できないように見えるアニメーションを正しく受け入れたことです。つまり、ヒンジは上部ではなく中央にあります。私は何が欠けていますか?
コードは次のとおりです。
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
CATransform3D frontTransform = CATransform3DIdentity;
frontTransform.m34 = 1.0 / -850.0;
CATransform3D rotation = CATransform3DRotate(frontTransform, M_PI/2, 1.0, 0.0, 0.0);
frontTransform = CATransform3DTranslate(frontTransform, 0.0, 0.0, menuView.bounds.size.height);
frontTransform = CATransform3DConcat(rotation, frontTransform);
menuView.layer.transform = frontTransform;
}completion:^(BOOL finished){
if (finished) {
[self.window sendSubviewToBack:menuView];
CATransform3D backTransform = CATransform3DIdentity;
backTransform.m34 = 0.0f; //Must be first before setting any other properties.
backTransform = CATransform3DRotate(backTransform, M_PI, 0.0, 0.0, 0.0);
backTransform = CATransform3DTranslate(backTransform, 0.0, 0.0, 0.0);
menuView.layer.transform = backTransform;
}
}];
上記のようにレイヤーをアニメーション化し、完了時にレイヤーのビューを他のすべてのビューの背後に送り、レイヤーを元の状態に戻して、後で前面に表示できるようにします。
助けてくれてありがとう!