zoukankan      html  css  js  c++  java
  • 核心动画

    //
    //  ViewController.m
    //  Core AnimationTest
    //
    //  Created by apple on 15-3-27.
    //  Copyright (c) 2015年 apple. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        
        
    }
    - (IBAction)btnAction:(id)sender {
        [self animationOfCAKeyframeAnimationPath];
    }
    
    
    //动画上下文
    -(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"];
    }
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
  • 相关阅读:
    泛型类,泛型方法的使用
    Mapper注解与MapperScan注解
    Configuration注解
    LA 4254 Processor (二分 + 贪心)
    UVa 10382 Watering Grass (贪心 区间覆盖)
    UVA 10795 A Different Task (递归)
    LA 3401 Colored Cubes (搜索 + 暴力)
    uva11464 Even Parity (枚举+递推)
    icpc2021 昆明 K (dfs爆搜)
    hdu3533 (bfs + 模拟)
  • 原文地址:https://www.cnblogs.com/keyan1102/p/4478496.html
Copyright © 2011-2022 走看看