如何通过翻转和缩放实现iPhone视图过渡动画?

ros*_*hen 5 iphone transition core-animation view

如何实现我们在iPhone音乐应用程序的封面屏幕中看到的动画?当您点击一个小视图时,它会翻转并缩放到另一个视图?我怎样才能做到这一点?我可以使用核心动画来翻转和缩放视图,但是如何转换到另一个视图呢?谢谢

Kai*_*ann 14

你需要一个UIView容器作为两个UIViews(前端/后侧),然后从/向容器中删除/添加这些作为子视图,同时在两者之间进行动画:

UIView *flipContainer;
UIView *frontSide;
UIView *backSide;
  //...
-(void)turnUp
{
  [backSide removeFromSuperview];
  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:1.0];
  [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:flipContainer cache:YES];
  [UIView setAnimationDuration:1.0];
  CGAffineTransform transform = CGAffineTransformMakeScale(1.2, 1.2);
  flipContainer.transform = transform;
  [UIView commitAnimations];
  [flipContainer addSubview:frontSide];
}
-(void)turnDown
{
  [frontSide removeFromSuperview];
  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:1.0];
  [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:flipContainer cache:YES];
  [UIView setAnimationDuration:1.0];
  CGAffineTransform transform = CGAffineTransformMakeScale(1, 1);
  flipContainer.transform = transform;
  [UIView commitAnimations];
  [flipContainer addSubview:backSide];
}
Run Code Online (Sandbox Code Playgroud)