zoukankan      html  css  js  c++  java
  • IOS动画

    基础动画

    //创建基础动画
        CABasicAnimation * basic = [CABasicAnimation animation];
        //动画路径
        basic.keyPath = @"position";
        
        //设置初始状态
    //    basic.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
    //    //终止状态
    //    basic.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 300)];
        
        //动画距离
        basic.byValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];
        
        //动画的初始和结束的模式 fillMode和removedOnCompletion要配合使用
        basic.fillMode = kCAFillModeForwards;// @"forwards";
        //动画完成在layer中删除
        basic.removedOnCompletion = NO;
        
        //如果初始状态就是当前动画未执行的位置
        
        //动画时间
        basic.duration = 1;
        
        //动画的加速度
        basic.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
        //animation.timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.5 :0 :0.9 :0.7];

        
        //添加动画
        [_animationView.layer addAnimation:basic forKey:@"basic"];


    关键帧动画

    //创建关键帧动画
        CAKeyframeAnimation * keyframe = [CAKeyframeAnimation animation];
        
        keyframe.keyPath = @"position.x";
        
        //设置关键帧的位置
        keyframe.values = @[@0,@10,@-10,@10,@0];

        //设置关键帧的时间
        keyframe.keyTimes = @[ @0, @(1 / 6.0), @(3 / 6.0), @(5 / 6.0), @1 ];
        
        //无需设置起始位置
        keyframe.additive = YES;
        
        //calculationMode设置加速度,kCAAnimationPaced保持恒定的加速度,如果设置calculationMode,keyTimes失效
        keyframe.calculationMode = kCAAnimationPaced;
        
    //重复次数
        keyframe.repeatCount = HUGE_VALF; //MAXFLOAT;

        //设置时间
        keyframe.duration = 0.5;
        
        [_animationView.layer addAnimation:keyframe forKey:@"keyframe"];


    过度动画
    //创建过度动画
        CATransition * transition = [CATransition animation];
        transition.type = @"suckEffect";
        transition.subtype = @"fromLeft";
        transition.duration = 2;
        [self.imageView.layer addAnimation:transition forKey:nil];
    /* 过渡效果
     fade     //交叉淡化过渡(不支持过渡方向) kCATransitionFade
     push     //新视图把旧视图推出去  kCATransitionPush
     moveIn   //新视图移到旧视图上面   kCATransitionMoveIn
     reveal   //将旧视图移开,显示下面的新视图  kCATransitionReveal
     cube     //立方体翻滚效果
     oglFlip  //上下左右翻转效果
     suckEffect   //收缩效果,如一块布被抽走(不支持过渡方向)
     rippleEffect //滴水效果(不支持过渡方向)
     pageCurl     //向上翻页效果
     pageUnCurl   //向下翻页效果
     cameraIrisHollowOpen  //相机镜头打开效果(不支持过渡方向)
     cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
    */
      
    /* 过渡方向
     kCATransitionFromRight
     kCATransitionFromLeft
     kCATransitionFromBottom

  • 相关阅读:
    网络七层协议
    Sizeof与Strlen的区别与联系
    Java面试宝典(说说&和&&的区别)
    Java se基础(类的属性及关键字)
    了解java中垃圾回收机制
    MYSQL常用函数(系统信息函数)
    MYSQL常用函数(类型转化函数)
    MYSQL常用函数(格式化函数)
    MYSQL常用函数(控制流函数)
    【CF-1362】B. Johnny and His Hobbies
  • 原文地址:https://www.cnblogs.com/ldnh/p/5263337.html
Copyright © 2011-2022 走看看