• CABasicAnimation基本属性和使用


     1     //创建CABasicAnimation对象
     2     CABasicAnimation *animation = [CABasicAnimation animation];
     3     //对其keypath赋值,大小(旋转,平移,缩放)
     4     animation.keyPath = @"transform";
     5     //动画大小从多打开始
     6     animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DRotate(self.greenView.layer.transform, M_PI_4, 0, 0, 1)];
     7     //动画大小到多大开始结束
     8     animation.toValue = [NSValue valueWithCATransform3D:CATransform3DRotate(self.greenView.layer.transform, -M_PI_4, 0, 0, 1)];
     9     
    10     //如果希望保持动画最后状态
    11     animation.removedOnCompletion = NO;
    12     
    13     //设置fillMode
    14     animation.fillMode = kCAFillModeForwards;
    15     /*
    16      CA_EXTERN NSString * const kCAFillModeForwards
    17      CA_EXTERN NSString * const kCAFillModeBackwards
    18      CA_EXTERN NSString * const kCAFillModeBoth
    19      CA_EXTERN NSString * const kCAFillModeRemoved
    20      */
    21     /*
    22      fillMode的作用就是决定layer对象执行完动画后的行为。该属性只有在removedOnCompletion设置为NO才会有效。
    23      > kCAFillModeForwards:当动画结束后,layer会一直保持着动画最后的状态
    24      > kCAFillModeBackwards:只要动画被加入了layer,layer便立刻处于动画初始状态。将一个动画加入一个layer的时候延迟5秒执行即可测试出来。设置核心动画      延时anim.beginTime = CACurrentMediaTime() + 2;其中CACurrentMediaTime获得当前动画时间。这里表示延时两秒。
    25      > kCAFillModeBoth:动画加入layer后,在开始之前,layer便处于动画初始状态,动画结束后layer保持动画最后的状态.
    26      > kCAFillModeRemoved: 默认值,动画结束后,layer会恢复到之前的状态。
    27      */
    28     
    29     
    30     //设置持续时间
    31     animation.duration = 2;
    32     //添加到view
    33     [self.greenView.layer addAnimation:animation forKey:nil];
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    //创建CABasicAnimation对象
        CABasicAnimation *animation = [CABasicAnimation animation];
        //对其keypath赋值,
        animation.keyPath = @"position";
        //动画从什么地方开始
        animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(50, 50)];
        //动画从什么地方结束
        animation.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];
        //设置延长时间
        animation.duration = 2;
        //添加到view
        [self.greenView.layer addAnimation:animation forKey:nil];
    }

        //创建CABasicAnimation对象
        CABasicAnimation *animation = [CABasicAnimation animation];
        //对其keypath赋值,大小
        animation.keyPath = @"bounds";
        //动画大小从多打开始
        animation.fromValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 50, 50)];
        //动画大小到多大开始结束
        animation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];
        //设置持续时间
        animation.duration = 2;
        //添加到view
        [self.greenView.layer addAnimation:animation forKey:nil];
  • 相关阅读:
    eclipse使用svn
    yum安装mysql
    spring中aop使用
    mybatis定义拦截器
    横扫页面的三大标签
    springmvc日期格式化
    springmvc笔记
    springboot跳转jsp页面
    常用网址
    CentOS Android Studio桌面图标的创建
  • 原文地址:https://www.cnblogs.com/neilHoIOS/p/4628433.html
Copyright © 2020-2023  润新知