IOS中的动画属性

核心动画

特点 1. 自己去 自己可以回来
    2. 动画移动的图层, 真实的位置 没有改变

CALayer

基本属性

backergroundColor 背景颜色 [UIColor redColor].CGColor
anchorPoint 锚点CGPoint值得范围是0到1之间
position 位置 CGPoint
bounds 大小 CGRect
opacity 透明度
contents 内容id类型

其他属性

边框

borderWidth 边框宽度
borderColor 边框颜色

阴影

shadowColor 阴影颜色
shadowOffset 阴影位置
shadowRadius 阴影半径
==需要设置阴影的透明度==
shadowOpacity 阴影透明度

圆角

cornerRadius 设置圆角
masksToBounds 周围的遮罩 ==如果去掉遮罩那么阴影效果就不会显示==

隐式动画

自带隐式动画,不过可以手动关闭

[CATransaction begin];          开启事务
[CATransaction setDisableActions:YES];         关闭动画
[CATransaction commit];       提交事物

Transform属性

self.layer.transform = CATransform3DTranslate(self.layer.transform, 30, 0, 0);   平移
self.layer.transform = CATransform3DScale(self.layer.transform, 0.5, 0.5, 0);    缩放
self.layer.transform = CATransform3DRotate(self.layer.transform, M_PI_4, 1, 1, 1);  旋转

基本动画(CABasicAnimation)

因为是NSOBjiet的分类所以不需要设置代理
repeatCount 循环次数
duration 单次运行完毕所需时间

Position(X轴 Y轴)

CABasicAnimation  *basic = [CABasicAnimation animationWithKeyPath:@"position.y"],
 key:表示你想让它产生那个属性的动画,    position界面的移动使用
basic.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 500)];  移动的位置

basic.removedOnCompletion = NO;   到了那个移动位置后,是否返回
basic.fillMode = kCAFillModeForwards; 动画的阶段模式,在动画还没开始前  和上面的一起搭配使用,固定用法

Transform(Rotation And Scale)

CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];   旋转
basic.toValue = @(M_PI * 2.5);  设置属性  即旋转的角度
[self.layer addAnimation:basic forKey:nil];  需要添加到layer上面
CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"];     缩放

    basic.toValue = @(0.5);                     设置属性
    basic.repeatCount = MAXFLOAT;  
    basic.duration = 2.0;
    [self.layer addAnimation:basic forKey:nil]; 添加

关键帧动画(CAKeyframeAnimation)

Values 属性可以包含多个动作
Path 属性可以设置他的移动路径

沿着固定的点进行移动
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    
//设置属性
NSValue *value1 =  [NSValue valueWithCGPoint:CGPointMake(30, 30)];
NSValue *value2 =  [NSValue valueWithCGPoint:CGPointMake(30, 500)];
    
NSValue *value3 =  [NSValue valueWithCGPoint:CGPointMake(360, 500)];
    
NSValue *value4 =  [NSValue valueWithCGPoint:CGPointMake(360, 30)];
    
    
key.values = @[value1,value2,value3,value4,value1];
key.repeatCount = MAXFLOAT;
key.duration = 3.0;
    
//2.添加
[self.layer addAnimation:key forKey:nil];
沿绘制路径移动
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"position"];
        
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(30, 400, 100, 300)];
    
key.path = path.CGPath;
key.duration = 2.0;
    
//2.添加
[self.layer addAnimation:key forKey:nil];
平面的抖动 (通过旋转实现)
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"];
        
key.values = @[@(-M_PI_4 * 0.03),@(M_PI_4 * 0.03),@(M_PI_4 * 0.03)];
    
key.repeatCount = 30;
    
//2.添加
[self.layer addAnimation:key forKey:nil];

转场动画(CATransition)

CATransition *sition = [CATransition animation];
 //设置属性
    //样式
sition.type = kCATransitionMoveIn;
    //方向
sition.subtype = kCATransitionFromBottom;
        
[self.myImageView.layer addAnimation:sition forKey:nil];

组动画(CAAnimationGroup)

//1.创建动画对象
    CAAnimationGroup *group = [CAAnimationGroup animation];
       
//1.创建动画
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"position"];   
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(30, 300, 300, 200)];    
key.path = path.CGPath;

     
//1.创建动画对象
CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
//设置属性
basic.toValue = @(0.1);
   
    
//1.旋转
//1.创建动画 基本动画 transform.rotation 默认是绕着Z轴
CABasicAnimation *basic1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];    
//设置属性
basic1.toValue = @(M_PI * 10);
    
    
//包含多个动画对象
group.animations = @[key,basic,basic1];    
group.duration = 3;
group.repeatCount = 30;
   
//2.添加动画
[self.layer addAnimation:group forKey:nil];

[TOC]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,321评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,001评论 5 13
  • 书写的很好,翻译的也棒!感谢译者,感谢感谢! iOS-Core-Animation-Advanced-Techni...
    钱嘘嘘阅读 2,216评论 0 6
  • Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,...
    45b645c5912e阅读 2,968评论 0 21
  • "小画板程序"完成"小画板"程序。 下载地址:http://git.oschina.net/changyou/my...
    _浅墨_阅读 669评论 0 5