我正在开发基于导航的应用程序。在这个应用程序中,我想要一些Push Pop的特殊动画。
我想要currentViewController的MoveOut动画和nextViewController的FadeIn动画。
我使用了以下代码。 firstViewController的MoveOut动画工作正常。但我无法获得nextViewController的FadeIn动画。
- (IBAction)pushClick:(id)sender
{
SecondViewController * sec = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
CATransition *transitionMainView = [CATransition animation];
transitionMainView.duration = 0.4;
transitionMainView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transitionMainView.type = kCATransitionReveal;
transitionMainView.subtype = kCATransitionFromRight;
transitionMainView.delegate = self;
[self.navigationController.view.layer addAnimation:transitionMainView forKey:nil];
CATransition *transitionSubView = [CATransition animation];
transitionSubView.duration = 0.4;
transitionSubView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transitionSubView.type = kCATransitionFade;
transitionSubView.subtype = kCATransitionFromLeft;
transitionSubView.delegate = self;
[sec.view.layer addAnimation:transitionSubView forKey:nil];
[self.navigationController pushViewController:sec animated:NO];
}
请告诉我POP的解决方案.......
请分享您的知识.....
答案 0 :(得分:0)
你应该使用以下代码!
SecondViewController * sec = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
CATransition *transitionMainView = [CATransition animation];
transitionMainView.duration = 0.4;
transitionMainView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transitionMainView.type = kCATransitionReveal;
transitionMainView.subtype = kCATransitionFromRight;
transitionMainView.delegate = self;
[self.navigationController.view.layer addAnimation:transitionMainView forKey:nil];
[self.navigationController pushViewController:sec animated:NO];
sec.view.alpha = 0;
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:0.75];
sec.view.alpha = 1;
[UIView commitAnimations];