首页 > 其他 > 详细

图层的核心动画(CABaseAnimation)

时间:2016-02-15 21:12:16      阅读:349      评论:0      收藏:0      [点我收藏+]

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

结果

技术分享

图层的核心动画(CABaseAnimation)

原文:http://www.cnblogs.com/Lu2015-10-03/p/5191226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!