• 动画效果


    1、实现自身旋转动画效果

      不断调用自身这个函数,来实现不停的旋转

        [UIView beginAnimations:nil context:nil];

        [UIView setAnimationDuration:0.1];

        [UIView setAnimationDelegate:self];

        [UIView setAnimationDidStopSelector:@selector(startAnimation)];

        angle2 += 0.5;

        circular2.layer.anchorPoint = CGPointMake(0.5,0.5);//以右下角为原点转,(0,0)是左上角转,(0.5,0,5)心中间转,其它以此类推

        circular2.transform = CGAffineTransformMakeRotation(angle2 * (-M_PI / 180.0f));

     //不断调用自身方法,实现无限循环旋转,则不需要写下边这一句,如果只执行一次,要加上提交动画

     [UIView commitAnimations];

    2、实现图片渐变成另一张图片的效果

    先定义imagyer   

    @property(nonatomic,strong) CALayer *imageLayer;

     实现并添加layer

     self.imageLayer.frame = CGRectMake(40, 40, BILIW(350), BILIH(350));

     [self.layer addSublayer:self.imageLayer];

    设置图片渐变效果

       CABasicAnimation *contentsAnimation = [CABasicAnimation animationWithKeyPath:@"contents"];

        contentsAnimation.fromValue = self.imageLayer.contents;

        contentsAnimation.toValue = (__bridgeid)(imageImg.CGImage);

        contentsAnimation.duration = AnimationTime;

        //设定layer动画结束之后的值,(必须设定,否则会恢复到动画之前的状态)

        self.imageLayer.contents = (__bridgeid)(imageImg.CGImage);

        //提交动画;

        [self.imageLayer addAnimation:contentsAnimation forKey:nil];

    3、实现对象沿轨迹运动动画效果

      CAKeyframeAnimation创建动画原理,会复制一个新的对象来进行动画运动,但是对象原始的位置不会进行改变

        CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

        pathAnimation.calculationMode = kCAAnimationPaced;

        pathAnimation.removedOnCompletion = NO;//不删除复制的对象

        pathAnimation.fillMode = kCAFillModeForwards;//停留在当前位置

        pathAnimation.duration =AnimationTime;

    //    pathAnimation.repeatCount = 1;

    //创建动画的运动轨迹

        CGMutablePathRef curvedPath = CGPathCreateMutable();

        //最后一个参数way控制旋转方向,yes,逆时针,no顺时针

        CGPathAddArc(curvedPath, NULL, BILIW(250), BILIW(250), BILIW(175), startAngle, endAngle, way);

        pathAnimation.path = curvedPath;

        CGPathRelease(curvedPath);

        [ringV.layer addAnimation:pathAnimation forKey:@"keyAnimation"];

     

  • 相关阅读:
    去除测序reads中的接头:adaptor
    Python学习_13_继承和元类
    Matplotlib初体验
    Python学习_12_方法和类定制
    python+requests接口自动化测试框架实例详解教程
    typeof与instanceof运算符
    闭包与递归函数的区别
    添加SSH
    AndroidStudio常用快捷键总结
    git新建分支
  • 原文地址:https://www.cnblogs.com/shizhiliblog/p/7826245.html
Copyright © 2020-2023  润新知