IOS中的动画属性

作者: Stone未来我来 | 来源:发表于2016-06-14 08:46 被阅读286次

核心动画

特点 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]

相关文章

  • iOS动画小总结

    iOS动画,对于开发者来说是一把利器,如果运用好。iOS中的动画: 1.UIImageView动画: 2.属性动画...

  • IOS中的动画属性

    核心动画 CALayer 基本属性 backergroundColor 背景颜色 [UIColor redCol...

  • iOS中的显示动画(属性动画)

    CABasicAnimation 当更新属性的时候,我们需要设置一个新的事务,并且禁用图层行为。否则动画会发生两次...

  • iOS核心动画高级技巧六(显式动画)

    目录 属性动画动画组过渡在动画过程中取消动画总结 序言 前面介绍了隐式动画的概念。隐式动画是在iOS平台创建动态用...

  • iOS 动画(一)

    iOS 动画(一)iOS 动画(二) 基于 UIView 的 transform 属性 缩放 该方法有两个参数,分...

  • 动画(二)

    这期动画是对基础动画的一个小结。动画的基本属性请看:iOS动画一 说到总结基础动画再总结下属性吧。想要的动画的动画...

  • iOS让push跳转动画像modal跳转动画那样效果

    iOS让push跳转动画像modal跳转动画那样效果(从下往上推上来),iOS核心动画有很多,转场啊,属性动画,基...

  • iOS面试题-每日十道-第四天

    一. 简述iOS动画机制 iOS分为显式动画,隐式动画 显式动画: 对一些属性做指定的自定义动画,或者创建非线性动...

  • [iOS]动画属性

    一 、基础动画 1、基础动画的属性详解 注:Core Animation的动画执行过程都是在后台操作的,不会阻塞主...

  • iOS - 属性动画

    属性动画->通过改变图层或者视图上面的属性值(支持动画的属性)产生的动画 属性动画的常用方法属性: 1、初始化+(...

网友评论

    本文标题:IOS中的动画属性

    本文链接:https://www.haomeiwen.com/subject/mtrrdttx.html