1 typedef enum : NSUInteger {  2     Fade = 1,                   //淡入淡出  3     Push,                       //推挤  4     Reveal,                     //揭开  5     MoveIn,                     //覆盖  6     Cube,                       //立方体  7     SuckEffect,                 //吮吸  8     OglFlip,                    //翻转  9     RippleEffect,               //波纹 10     PageCurl,                   //翻页 11     PageUnCurl,                 //反翻页 12     CameraIrisHollowOpen,       //开镜头 13     CameraIrisHollowClose,      //关镜头 14     CurlDown,                   //下翻页 15     CurlUp,                     //上翻页 16     FlipFromLeft,               //左翻转 17     FlipFromRight,              //右翻转 18      19 } AnimationType;


1 - (IBAction)tapButton:(id)sender {   2     3     UIButton * button = sender;   4     AnimationType animationType = button.tag;   5        6     NSString * subtypeString;   7        8     switch (_subtype) {   9         case 0:  10             subtypeString = kCATransitionFromLeft;  11             break;  12         case 1:  13             subtypeString = kCATransitionFromBottom;  14             break;  15         case 2:  16             subtypeString = kCATransitionFromRight;  17             break;  18         case 3:  19             subtypeString = kCATransitionFromTop;  20             break;  21         default:  22             break;  23     }  24       25     _subtype += 1;  26     if (_subtype > 3) {  27         _subtype = 0;  28     }  29   30       31     switch (animationType) {  32         case Fade:  33             [self transitionWithType:kCATransitionFade WithSubtype:subtypeString ForView:self.view];  34             break;  35           36         case Push:  37             [self transitionWithType:kCATransitionPush WithSubtype:subtypeString ForView:self.view];  38             break;  39               40         case Reveal:  41             [self transitionWithType:kCATransitionReveal WithSubtype:subtypeString ForView:self.view];  42             break;  43               44         case MoveIn:  45             [self transitionWithType:kCATransitionMoveIn WithSubtype:subtypeString ForView:self.view];  46             break;  47               48         case Cube:  49             [self transitionWithType:@"cube" WithSubtype:subtypeString ForView:self.view];  50             break;  51           52         case SuckEffect:  53             [self transitionWithType:@"suckEffect" WithSubtype:subtypeString ForView:self.view];  54             break;  55               56         case OglFlip:  57             [self transitionWithType:@"oglFlip" WithSubtype:subtypeString ForView:self.view];  58             break;  59               60         case RippleEffect:  61             [self transitionWithType:@"rippleEffect" WithSubtype:subtypeString ForView:self.view];  62             break;  63               64         case PageCurl:  65             [self transitionWithType:@"pageCurl" WithSubtype:subtypeString ForView:self.view];  66             break;  67               68         case PageUnCurl:  69             [self transitionWithType:@"pageUnCurl" WithSubtype:subtypeString ForView:self.view];  70             break;  71               72         case CameraIrisHollowOpen:  73             [self transitionWithType:@"cameraIrisHollowOpen" WithSubtype:subtypeString ForView:self.view];  74             break;  75               76         case CameraIrisHollowClose:  77             [self transitionWithType:@"cameraIrisHollowClose" WithSubtype:subtypeString ForView:self.view];  78             break;  79           80         case CurlDown:  81             [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionCurlDown];  82             break;  83           84         case CurlUp:  85             [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionCurlUp];  86             break;  87               88         case FlipFromLeft:  89             [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionFlipFromLeft];  90             break;  91               92         case FlipFromRight:  93             [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionFlipFromRight];  94             break;  95   96         default:  97             break;  98     }  99      100     static int i = 0; 101     if (i == 0) { 102         [self addBgImageWithImageName:IMAGE1]; 103         i = 1; 104     } 105     else 106     { 107         [self addBgImageWithImageName:IMAGE2]; 108         i = 0; 109     } 110      111 }


1 #pragma CATransition动画实现  2 - (void) transitionWithType:(NSString *)type WithSubtype:(NSString *) subtype ForView : (UIView *) view  3 {  4     //创建CATransition对象  5     CATransition * animation = [CATransition animation];  6       7     //设置运动时间  8     animation.duration = DURATION;  9      10     //设置运动type 11     animation.type = type; 12     if (subtype != nil) { 13         //设置子类 14         animation.subtype = subtype; 15     } 16      17     //设置运动速度 18     animation.timingFunction = UIViewAnimationOptionCurveEaseInOut; 19      20     [view.layer addAnimation:animation forKey:@"animation"]; 21 } 22  23  24  25 #pragma UIView实现动画 26 - (void) animationWithView:(UIView *)view WithAnimationTransition : (UIViewAnimationTransition) transition 27 { 28     [UIView animateWithDuration:DURATION animations:^{ 29         [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 30         [UIView setAnimationTransition:transition forView:view cache:YES]; 31     }]; 32 }