zoukankan      html  css  js  c++  java
  • 图层的核心动画(CABaseAnimation)

    Main.storyboard

    //

    //  ViewController.m

    //  7A14.图层的核心动画

    //

    //  Created by huan on 16/2/4.

    //  Copyright © 2016 huanxi. All rights reserved.

    //

     

    #import "ViewController.h"

     

    @interface ViewController ()

    @property (weak, nonatomic) IBOutlet UIImageView *imageView;

     

    @end

     

    @implementation ViewController

     

    - (void)viewDidLoad {

        [super viewDidLoad];

        // Do any additional setup after loading the view, typically from a nib.

    }

     

    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

        //设置根层的大小

    //    self.imageView.layer.bounds = CGRectMake(0, 0, 150, 150);

        //想要在根层执行动画,使用核心动画

        //1.创建一个核心动画对象

        CABasicAnimation *animation = [CABasicAnimation animation];

    #warning 核心动画,只是一个假象,真实的大小是没有变化

        /*

         * 解决方案1:如果想控制的大小真实改变,要在动画结束设置控制的尺寸

         * 解决方案2:使动画保存执行之后的状态,默认动画执行完后,会返回原来的状态

         */

     

        //设置图形的属性来决定动画类型

        //bounds 图层尺寸动画

        animation.keyPath = @"bounds";

        //设置bounds尺寸变化后的大小

        animation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 150, 150)];

        //解决方案1:动画的代理

        //动画的代理

        animation.delegate = self;

        //解决方案2:使动画保存之后的状态,只要设置动画的两个属性

    //    animation.removedOnCompletion = NO; //动画对象不要移除

    //    animation.fillMode = kCAFillModeForwards;//保存当前的状态

        //2.往控件的图层添加动画

        [self.imageView.layer addAnimation:animation forKey:nil];

     

    }

     

    -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{

        self.imageView.bounds = CGRectMake(0, 0, 150, 150);

    }

     

     

    @end

    结果

  • 相关阅读:
    C# Activator.CreateInstance 动态创建类的实例(二)
    C# Activator.CreateInstance 动态创建类的实例(一)
    C#中Activator.CreateInstance()方法用法分析
    C#实现插件的“动态替换”
    Windows Mobile X图标如何销毁窗体而非隐藏
    Windows Mobile 6开发环境搭建
    Mac系统下配置JDK及MAVEN环境变量配置
    通过 mklink 命令创建目录链接实现文件转移
    SQL SERVER 存储过程示例
    BNU 34990 Justice String (hash+二分求LCP)
  • 原文地址:https://www.cnblogs.com/Lu2015-10-03/p/5191226.html
Copyright © 2011-2022 走看看