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

  • 相关阅读:
    一起谈.NET技术,深入ASP.NET 2.0的提供者模型(2) 狼人:
    一起谈.NET技术,从.NET中委托写法的演变谈开去(上):委托与匿名方法 狼人:
    一起谈.NET技术,将Flash 嵌入WPF 程序 狼人:
    一起谈.NET技术,数组排序方法的性能比较(中):Array.Sort<T> 实现分析 狼人:
    人一生当中最应该珍惜的十种人
    《程序员的第一年》复习一下C#的【封装 多态 继承 简单计算器源码实例】
    myeclipse 修改模板
    三星将在百思买零售店内开设1400家体验店
    谷歌Q3推Android本 蚕食自己平板市场
    Spring Setting
  • 原文地址:https://www.cnblogs.com/ldnh/p/5263337.html
Copyright © 2011-2022 走看看