基础动画(一)

代码如下:

#import "ViewController.h"


@interface ViewController ()


@property (nonatomic, strong)CALayer *JFlayer;


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    CALayer *layer = [CALayer layer];

    layer.position = CGPointMake(100, 150);

    layer.bounds = CGRectMake(0, 0, 100, 100);

    layer.backgroundColor = [UIColor redColor].CGColor;

    [self.view.layer addSublayer:layer];

    self.JFlayer = layer;

}


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

    //[self testTransLate];

    //[self zoom];

    //[self rotate3D];

    [self revolution_plane];

    

    

}

//

-(void)testTransLate{

    // 1.创建动画对象

    CABasicAnimation *animation = [CABasicAnimation animation];

    

    // 2.设置动画对象

    // keyPath决定了执行怎样的动画, 调整哪个属性来执行动画

    //    anim.keyPath = @"transform.rotation";

    //    anim.keyPath = @"transform.scale.x";

    animation.keyPath = @"position";

    animation.fromValue =  [NSValue valueWithCGPoint:CGPointMake(0, 0)];

    animation.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 300)];

    animation.duration = 2.0;

    

    //动画删除完毕后不要删除动画

    animation.removedOnCompletion = NO;

    //保持最新状态

    animation.fillMode = kCAFillModeForwards;

    

     // 3.添加动画

    [self.JFlayer addAnimation:animation forKey:nil];

    

}


//平移缩放

-(void)zoom{

    // 1.创建动画对象

    CABasicAnimation *animation = [CABasicAnimation animation];

    

    // 2.设置动画对象

    // keyPath决定了执行怎样的动画, 调整哪个属性来执行动画

    //    anim.keyPath = @"transform.rotation";

    //    anim.keyPath = @"transform.scale.x";

    animation.keyPath = @"bounds";

   // animation.fromValue =  [NSValue valueWithCGPoint:CGPointMake(0, 0)];

    animation.toValue = [NSValue valueWithCGRect:CGRectMake(50, 0, 200, 300)];

    animation.duration = 2.0;

    

    //动画删除完毕后不要删除动画

    animation.removedOnCompletion = NO;

    //保持最新状态

    animation.fillMode = kCAFillModeForwards;

    

    // 3.添加动画

    [self.JFlayer addAnimation:animation forKey:nil];


}


//3D旋转

-(void)rotate3D{

    // 1.创建动画对象

    CABasicAnimation *animation = [CABasicAnimation animation];

    

    // 2.设置动画对象

    // keyPath决定了执行怎样的动画, 调整哪个属性来执行动画

    //    anim.keyPath = @"transform.rotation";

    //    anim.keyPath = @"transform.scale.x";

    animation.keyPath = @"transform";

    // animation.fromValue =  [NSValue valueWithCGPoint:CGPointMake(0, 0)];

    animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, -1,  -1, 0)];

    animation.duration = 2.0;

    

    //动画删除完毕后不要删除动画

    animation.removedOnCompletion = NO;

    //保持最新状态

    animation.fillMode = kCAFillModeForwards;

    

    // 3.添加动画

    [self.JFlayer addAnimation:animation forKey:nil];


}


  // keyPath决定了执行怎样的动画, 调整哪个属性来执行动画

-(void)revolution_plane{

    // 1.创建动画对象

    CABasicAnimation *animation = [CABasicAnimation animation];

    

    // 2.设置动画对象

    // keyPath决定了执行怎样的动画, 调整哪个属性来执行动画

    //    anim.keyPath = @"transform.rotation";

    //    anim.keyPath = @"transform.scale.x";

    animation.keyPath = @"transform.rotation";

    // animation.fromValue =  [NSValue valueWithCGPoint:CGPointMake(0, 0)];

   // animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, -1,  -1, 0)];

    

    //增加到什么值

    //animation.toValue = @(2);

    

    //递增多少值

    animation.byValue = @(2);

    animation.duration = 0.5;

    

    //动画删除完毕后不要删除动画

    animation.removedOnCompletion = NO;

    //保持最新状态

    animation.fillMode = kCAFillModeForwards;

    

    // 3.添加动画

    [self.JFlayer addAnimation:animation forKey:nil];



}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值