CATransition *animation = [CATransition animation];
animation.delegate = self;
animation.duration = kDuration;
animation.timingFunction = UIViewAnimationCurveEaseInOut;
switch (tag)
{
case 101:
animation.type = kCATransitionFade;//淡化
break;
case 102:
animation.type = kCATransitionPush;//推挤
break;
case 103:
animation.type = kCATransitionReveal;//掀开
break;
case 104:
animation.type = kCATransitionMoveIn;//覆盖
break;
case 201:
animation.type = @"cube";//立方体
break;
case 202:
animation.type = @"suckEffect";//吸收
break;
case 203:
animation.type = @"oglFlip";//翻转
break;
case 204:
animation.type = @"rippleEffect";//波纹
break;
case 205:
animation.type = @"pageCurl";//翻页
break;
case 206:
animation.type = @"pageUnCurl";//反翻页
break;
case 207:
animation.type = @"cameraIrisHollowOpen";//镜头开
break;
case 208:
animation.type = @"cameraIrisHollowClose";//镜头关
break;
default:
break;
}
//翻转方向
switch (self.typeID) {
case 0:
animation.subtype = kCATransitionFromLeft;
break;
case 1:
animation.subtype = kCATransitionFromBottom;
break;
case 2:
animation.subtype = kCATransitionFromRight;
break;
case 3:
animation.subtype = kCATransitionFromTop;
break;
default:
break;
}
//TODO 翻转后的view操作
[self.view exchangeSubviewAtIndex:green withSubviewAtIndex:blue];
[[self.view layer] addAnimation:animation forKey:@"animation"];
//下面是实现上翻,下翻,左转,右转 的另一种实现:
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:kDuration];
switch (tag) {
case 105:
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
break;
case 106:
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
break;
case 107:
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
break;
case 108:
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
break;
default:
break;
}
//TODO 翻转后的view操作
[self.view exchangeSubviewAtIndex:green withSubviewAtIndex:blue];
[UIView setAnimationDelegate:self];
// 动画完毕后调用某个方法
//[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
[UIView commitAnimations];