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


    //动画上下文
    -(void)animationOfUIKit
    {
        UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
        redView.backgroundColor=[UIColor redColor];
        
        [self.view addSubview:redView];
        //开始动画
        [UIView beginAnimations:@"test" context:nil];
        //动画时长
        [UIView setAnimationDuration:1];
        /*
         *要进行动画设置的地方
         */
        
        redView.backgroundColor=[UIColor blueColor];
        redView.frame=CGRectMake(50, 50, 200, 200);
        redView.alpha=0.5;
        
        
        //动画结束
        [UIView commitAnimations];
    }
    //通过代码块

    -(void)animationOfBlock
    {
        //初始化一个View,用来显示动画
        UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
        redView.backgroundColor=[UIColor redColor];
        
        [self.view addSubview:redView];
        
        [UIView animateWithDuration:1 //时长
                              delay:0 //延迟时间
                            options:UIViewAnimationOptionCurveEaseInOut//动画效果
                         animations:^{
                             
                             //动画设置区域
                             redView.backgroundColor=[UIColor blueColor];
                             redView.frame=CGRectMake(50, 50, 200, 200);
                             redView.alpha=0.5;
                             
                         } completion:^(BOOL finish){
                             //动画结束时调用
                             //............
                         }];
        
        
    }




    //CA动画
    - (void)animationOfCABasicAnimation
    {
        //创建一个CABasicAnimation对象
        CABasicAnimation *animation=[CABasicAnimation animation];
        //设置颜色
        animation.toValue=(id)[UIColor blueColor].CGColor;
        //动画时间
        animation.duration=1;
        //是否反转变为原来的属性值
        animation.autoreverses=YES;
        //把animation添加到图层的layer中,便可以播放动画了。forKey指定要应用此动画的属性
        [self.view.layer addAnimation:animation forKey:@"backgroundColor"];
    }
    //


    //关键帧动画CAKeyframeAnimation

    - (void)animationOfCAKeyframeAnimation
    {
        CAKeyframeAnimation *animation=[CAKeyframeAnimation animation];
        //设置属性值
        animation.values=[NSArray arrayWithObjects:
    //                      (id)self.view.backgroundColor,
                          (id)[UIColor yellowColor].CGColor,
                          (id)[UIColor greenColor].CGColor,
                          (id)[UIColor blueColor].CGColor,nil];
        animation.duration=3;
        animation.autoreverses=YES;
        //把关键帧添加到layer中
        [self.view.layer addAnimation:animation forKey:@"backgroundColor"];
    }


    //使用路径制作动画CAKeyframeAnimation

    - (void)animationOfCAKeyframeAnimationPath
    {
        //初始化一个View,用来显示动画
        UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 20, 20)];
        redView.backgroundColor=[UIColor redColor];
        
        [self.view addSubview:redView];
        
        CAKeyframeAnimation *ani=[CAKeyframeAnimation animation];
        //初始化路径
        CGMutablePathRef aPath=CGPathCreateMutable();
        //动画起始点
        CGPathMoveToPoint(aPath, nil, 20, 20);
        CGPathAddCurveToPoint(aPath, nil,
                              160, 30,//控制点
                              220, 220,//控制点
                              240, 380);//控制点
        
        
        CGPathAddCurveToPoint(aPath, nil,
                              160, 30,//控制点
                              220, 220,//控制点
                              240, 380);//控制点
        
        ani.path=aPath;
        ani.duration=10;
        //设置为渐出
        ani.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
        //自动旋转方向
        ani.rotationMode=@"auto";
        
        [redView.layer addAnimation:ani forKey:@"position"];
    }

  • 相关阅读:
    解析Zigbee技术在智能家居应用中的优缺点
    ZigBee无线网络技术在小区路灯照明系统的应用
    Zigbee技术特点
    梯度下降法-理解共轭梯度法
    感知机--理解系数向量和样本点递归
    fisher线性判别
    iso data 聚类算法
    近邻算法--类与类间最小损失函数
    聚类算法--理解最大最小距离分类
    类间距离测度方法
  • 原文地址:https://www.cnblogs.com/keyan1102/p/4465413.html
Copyright © 2011-2022 走看看