iOS 核心动画之CABasicAnimation

来源:互联网 发布:学java以后工作干什么 编辑:程序博客网 时间:2024/05/01 10:01

1.核心动画依赖于图层,首先创建图层

    // 创建图层    CALayer *layer = [CALayer layer];    layer.position = CGPointMake(150, 200);    layer.bounds = CGRectMake(0, 0, 100, 100);    layer.backgroundColor = [UIColor redColor].CGColor;    self.layer = layer;    [self.view.layer addSublayer:layer];

2.创建基础动画--平移

    CABasicAnimation *animation = [[CABasicAnimation alloc]init];    animation.keyPath = @"transform.translation.x";    animation.toValue = @(100);    animation.duration = 2;    animation.removedOnCompletion = NO;    animation.fillMode = kCAFillModeForwards;    [self.layer addAnimation:animation forKey:nil];

3.创建基础动画--缩放

    CABasicAnimation *animation = [[CABasicAnimation alloc]init];    animation.keyPath = @"bounds";    NSValue *value = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];    animation.toValue = value;    animation.duration = 2;    animation.removedOnCompletion = NO;    animation.fillMode = kCAFillModeForwards;    [self.layer addAnimation:animation forKey:nil];

4.创建基础动画--旋转

    CABasicAnimation *animation = [[CABasicAnimation alloc]init];    animation.keyPath = @"transform";    NSValue *value = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, 0, 0, 1)];    animation.toValue = value;    animation.duration = 2;    animation.removedOnCompletion = NO;    animation.fillMode = kCAFillModeForwards;    [self.layer addAnimation:animation forKey:nil];

5.创建基础动画--ByValue

    CABasicAnimation *animation = [[CABasicAnimationalloc]init];

    animation.keyPath =@"position";

    animation.byValue = [NSValuevalueWithCGPoint:CGPointMake(100,100)];

    animation.duration =2;

    animation.removedOnCompletion =NO;

    animation.fillMode =kCAFillModeForwards;

    [self.layeraddAnimation:animationforKey:nil];




0 0