• 核心动画


    核心动画是一套包含图形绘制,投影,动画的 Objective–C 类集合。

    核心动画的三块主要内容:

    1.图层calayer

    每一个view都默认有一个layer对象,用来显示视图。通过设置layer的一些属性可以改变一些layer视图的一些变化。

    layer的一些属性:

        _imageBack.layer.cornerRadius = 10;//设置圆角
        _imageBack.layer.masksToBounds = YES;//遮盖layer层下的所有layer
        _imageBack.layer.borderWidth = 5;//设置边框宽度
        _imageBack.layer.borderColor = [[UIColor orangeColor]CGColor];//设置边框颜色
        注意:设置masksToBounds后会将shadow给遮盖,解决方法是,建立为一个SubLayer
        UIView *_view = [[UIView alloc]initWithFrame:_imageBack.frame];
        [self.view addSubview:_view];
        _view.layer.shadowColor = [[UIColor blueColor]CGColor];//设置阴影颜色
        _view.layer.shadowOffset = CGSizeMake(10, 10);//设置阴影偏移量
        _view.layer.shadowOpacity = 0.5;//设置阴影透明度
        _view.layer.shadowRadius = 4;//设置阴影半径
        [_view addSubview:_imageBack];//将图片视图添加到view中
    //    _imageBack.layer.contents = (id)[[UIImage imageNamed:@"xxxx"]CGImage];//可以在layer中设置图片

    效果图:

    除此之外,还有一些其他的属性:

    mask--遮罩属性

    opacity--透明度

    compositingfilter--混合属性

    filters--滤镜属性

    backgroundcolor和backgroundfilters--图层背景属性

    图层的所有几何属性:

    frame  bounds  position  anchorpoint  cornerradius  transform  zposition

    2.动画类caanimation:主要有三类

    1)cabasicanimation   基础动画:提供了在图层属性值之间简单的插入

    2)cakeyframeanimation    关键帧动画:你指定动画的一个图层属性的关键路径,一个表示在动画的每个阶段的价值的数组,还有一个关键帧时间 的数组和时间函数。caanimationgroup   动画组

    3)catransition   转场动画:提供了一个影响整个图层的内容过渡效果。如淡出,推出等。

    隐式动画:使所有动画属性的变化是渐近的和异步的。通过直接改变动画图层的属性来实现。

    _layer.position=CGPointMake(500.0,500.0); 

    显示动画:创建一个动画对象,设置开始和结束的值。

    显示动画的一些keypath

    rotation.x  沿x轴旋转  rotation.y   rotation.z  rotation

    scale.x    沿x轴放大   scale.y  scale.z   scale

    translation.x  沿x轴转场  translation.y  translation.z   translation

    3.事务类catransaction

    图层的每一个改变都是事务的一部分。

    显示动画实例:
    设置视图的scale和opacity两个属性来实现视图的放大缩小

     CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"];//初始化视图和设置动画key
        basic.fromValue = [NSNumber numberWithFloat:1.0];//设置起始值
        basic.toValue = [NSNumber numberWithFloat:1.5];//设置中制值
        basic.autoreverses = YES;//在结束点后重新回到初始点
        basic.repeatCount = MAXFLOAT;//设置重复次数
        basic.duration = 2.0;//设置持续时间
        
        CABasicAnimation *opacity = [CABasicAnimation animationWithKeyPath:@"opacity"];
        opacity.fromValue = [NSNumber numberWithFloat:0.0];
        opacity.toValue = [NSNumber numberWithFloat:1.0];
        opacity.autoreverses = YES;
        opacity.duration = 2.0;
        opacity.repeatCount = MAXFLOAT;
        
        [_imageBack.layer addAnimation:opacity forKey:@"opacity"];
        [_imageBack.layer addAnimation:basic forKey:@"scale"];//添加视图

    效果图:

    关键帧动画:

    CAKeyframeAnimation *keyAnimate = [CAKeyframeAnimation animationWithKeyPath:@"position"];//初始化帧动画,并动画的key
        NSValue *value0 = [NSValue valueWithCGPoint:_imageBack.layer.position];
        NSValue *value1 = [NSValue valueWithCGPoint:CGPointMake(_imageBack.layer.position.x, _imageBack.layer.position.y+100)];
        NSValue *value2 = [NSValue valueWithCGPoint:CGPointMake(_imageBack.layer.position.x +100, _imageBack.layer.position.y + 100)];
        NSValue *value3 = [NSValue valueWithCGPoint:CGPointMake(_imageBack.layer.position.x + 100, _imageBack.layer.position.y)];
        NSValue *value4 = [NSValue valueWithCGPoint:_imageBack.layer.position];
        keyAnimate.values = @[value0,value1,value2,value3,value4];//设置帧动画的关键帧位置
        keyAnimate.duration = 2.0;
        keyAnimate.repeatCount = MAXFLOAT;
        keyAnimate.keyTimes = @[@0.0,@0.5,@0.6,@0.7,@0.9];//设置管见证在移动过程中的移动时间
    //    CAMediaTimingFunction *tf0 = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];//设置每一段的时间曲线
    //    keyAnimate.timingFunctions = @[tf0];//添加时间曲线
        
        [_imageBack.layer addAnimation:keyAnimate forKey:@"keyAnimate"];//添加动画到视图

    效果图:

  • 相关阅读:
    2016-5-6
    PE文件格式
    CheatEngine-内存修改
    ollydbg教程-动态调试
    IDA教程-静态反编译
    JavaFX常用汇总
    settings.xml样例文件
    Cassandra安装配置
    Linux安装配置相关
    Dom4j-读写xml
  • 原文地址:https://www.cnblogs.com/moxuexiaotong/p/4965916.html
Copyright © 2020-2023  润新知