2011-07-01 12 views
2

UIViewとサブビューのCALayerにアニメーションを組み合わせる?私はそうのようなUIViewの遷移をアニメーション化してい

UIView *areaView = areaController.view; 
[areaController viewWillAppear:YES]; 

UIView *subView = self.customView.subView; 
UIButton *button = customView.button; // button is a subview of customView.subView 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:subView cache:YES]; 

[button removeFromSuperview]; 
[subView addSubview:areaView]; 
[areaController viewDidAppear:YES]; 


[UIView commitAnimations]; 

[self.areaController start]; // areaController starts the animation of the CALayer, see below 

これはちゃんとボタン「背後」から新しいビュー、areaViewを反転させますが、areaViewで、それはCALayerのだアニメーションされている別のサブビューがあります:

は、
CATransform3D rotate = CATransform3DMakeRotation(angle, 1, 0, 0); 

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"]; 

animation.toValue = [NSValue valueWithCATransform3D:rotate]; 
animation.duration = .08; 
animation.delegate = self; 
animation.fillMode = kCAFillModeForwards; 
animation.removedOnCompletion = NO; 

[layer addAnimation:animation forKey:@"transform"]; 

私の質問は:

どのようにこれらのアニメーションをパラレルでアニメーション化するのですか?

現在、[self.areaController start];を呼び出すとCALayerのアニメーションが開始されますが、結果はスーパービューのトランジションが終了するまで表示されません。私は何とかUIViewのレイヤーでアニメーショングループを使用する必要がありますか?

+0

私もこのことを知りたいのですが... –

答えて

0

私はあなたが同時にこれらを行うことはできないと思います。あなたができることは、CATransform3Dを使って最初のアニメーションを行うことです。その後、同時に発生します。 これは古い投稿ですが、既に問題を解決している可能性があります。

+0

ありがとうございました、私が最後にやったようなものです –

関連する問題