美文网首页
iOS原生转场动画的调用与总结

iOS原生转场动画的调用与总结

作者: 流年划过颜夕 | 来源:发表于2018-09-21 14:23 被阅读74次
    typedef enum : NSUInteger {
    Fade = 1,                   //淡入淡出
    Push,                       //推挤
    Reveal,                     //揭开
    MoveIn,                     //覆盖
    Cube,                       //立方体
    SuckEffect,                 //吮吸
    OglFlip,                    //翻转
    RippleEffect,               //波纹
    PageCurl,                   //翻页
    PageUnCurl,                 //反翻页
    CameraIrisHollowOpen,       //开镜头
    CameraIrisHollowClose,      //关镜头
    CurlDown,                   //下翻页
    CurlUp,                     //上翻页
    FlipFromLeft,               //左翻转
    FlipFromRight,              //右翻转
    } AnimationType;
    
    
    switch (self.animationType) {
    
        case Fade:
            [self transitionWithType:kCATransitionFade  ForView:self.animationChangeView];
            break;
    
        case Push:
            [self transitionWithType:kCATransitionPush  ForView:self.animationChangeView];
            break;
    
        case Reveal:
            [self transitionWithType:kCATransitionReveal  ForView:self.animationChangeView];
            break;
    
        case MoveIn:
            [self transitionWithType:kCATransitionMoveIn  ForView:self.animationChangeView];
            break;
    
        case Cube:
            [self transitionWithType:@"cube"  ForView:self.animationChangeView];
            break;
    
        case SuckEffect:
            [self transitionWithType:@"suckEffect"  ForView:self.animationChangeView];
            break;
    
        case OglFlip:
            [self transitionWithType:@"oglFlip"  ForView:self.animationChangeView];
            break;
    
        case RippleEffect:
            [self transitionWithType:@"rippleEffect"  ForView:self.animationChangeView];
            break;
    
        case PageCurl:
            [self transitionWithType:@"pageCurl"  ForView:self.animationChangeView];
            break;
    
        case PageUnCurl:
            [self transitionWithType:@"pageUnCurl"  ForView:self.animationChangeView];
            break;
    
        case CameraIrisHollowOpen:
            [self transitionWithType:@"cameraIrisHollowOpen"  ForView:self.animationChangeView];
            break;
    
        case CameraIrisHollowClose:
            [self transitionWithType:@"cameraIrisHollowClose"  ForView:self.animationChangeView];
            break;
        case CurlDown:
            [self animationWithView:self.animationChangeView WithAnimationTransition:UIViewAnimationTransitionCurlDown];
            break;
    
        case CurlUp:
            [self animationWithView:self.animationChangeView WithAnimationTransition:UIViewAnimationTransitionCurlUp];
            break;
    
        case FlipFromLeft:
            [self animationWithView:self.animationChangeView WithAnimationTransition:UIViewAnimationTransitionFlipFromLeft];
            break;
    
        case FlipFromRight:
            [self animationWithView:self.animationChangeView WithAnimationTransition:UIViewAnimationTransitionFlipFromRight];
    
        default:
            break;
    }
    
    - (void) animationWithView : (UIView *)view WithAnimationTransition : (UIViewAnimationTransition) transition
    {
    [UIView animateWithDuration:self.speedTime?self.speedTime:0.6 animations:^{
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationTransition:transition forView:view cache:YES];
    }];
    }
    
    -(void) transitionWithType:(NSString *) type ForView : (UIView *) view
    {
    //创建CATransition对象
    CATransition *animation = [CATransition animation];
    //设置运动时间
    animation.duration = self.speedTime?self.speedTime:0.6;
    
    //设置运动type
    animation.type = type;
    
    //设置子类
    animation.subtype = self.newindex>self.oldindex?       kCATransitionFromLeft:kCATransitionFromRight;
    
    //设置运动速度
    animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;
    
    [view.layer addAnimation:animation forKey:@"animation"];
    
     }

    相关文章

      网友评论

          本文标题:iOS原生转场动画的调用与总结

          本文链接:https://www.haomeiwen.com/subject/xyianftx.html