博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
核心动画
阅读量:6206 次
发布时间:2019-06-21

本文共 3915 字,大约阅读时间需要 13 分钟。

////  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

 

转载于:https://www.cnblogs.com/keyan1102/p/4478496.html

你可能感兴趣的文章
统计单词个数(划分型)
查看>>
bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?
查看>>
任务调度及远端管理(基于Quartz.net)
查看>>
A 子类继承父类,子类的构造函数会覆盖父类的构造函数
查看>>
Ubuntu下Postgres安装与配置
查看>>
如何理解运维
查看>>
Avg_row_length是怎么计算的?
查看>>
Linux实战教学笔记12:linux三剑客之sed命令精讲
查看>>
zabbix网络发现主机
查看>>
docker 相关操作
查看>>
北京交大yum
查看>>
mybatisGenerator 代码自动生成报错 Result Maps collection already contains value for BaseResultMap...
查看>>
Python学习-03(集合,文件,编码)
查看>>
机器学习的展望
查看>>
/bin/bash^M: 坏的解释器: 没有那个文件或目录
查看>>
apple mach-o linker (id) error
查看>>
Dom学习笔记
查看>>
Django抛错不存在(DoesNotExist)
查看>>
PHP中的命名空间
查看>>
Django——认证系统(Day72)
查看>>