Я анимирую переход 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"];
Мой вопрос:
Как сделать, чтобы обе анимации анимировались параллельно?
В настоящее время анимация на CALayer начинается при вызове [self.areaController start];
, но результат не виден до тех пор, пока не завершится переход на суперпредставлении. Должен ли я как-то использовать анимационную группу со слоем UIView?