iOS动画

ios layer 动画-(transform.scale篇)

2019-10-04  本文已影响0人  少年你这是喜脉啊

x轴旋转:

CABasicAnimation *theAnimation;

theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];

theAnimation.duration=8;

theAnimation.removedOnCompletion = YES;

theAnimation.fromValue = [NSNumber numberWithFloat:0];

theAnimation.toValue = [NSNumber numberWithFloat:3.1415926];

 [yourView.layer addAnimation:theAnimation forKey:@"animateTransform"];

y轴旋转:

CABasicAnimation *theAnimation;

theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];

theAnimation.duration=8;

theAnimation.removedOnCompletion = YES;

theAnimation.fromValue = [NSNumber numberWithFloat:0];

theAnimation.toValue = [NSNumber numberWithFloat:3.1415926];

 [yourView.layer addAnimation:theAnimation forKey:@"animateTransform"];

z轴旋转:

CABasicAnimation *theAnimation;

theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

theAnimation.duration=8;

theAnimation.removedOnCompletion = YES;

theAnimation.fromValue = [NSNumber numberWithFloat:0];

theAnimation.toValue = [NSNumber numberWithFloat:3.1415926];

 [yourView.layer addAnimation:theAnimation forKey:@"animateTransform"];

以上缩放是以view的中心点为中心缩放的,如果需要自定义缩放点,可以设置卯点:

//中心点

[yourView.layer setAnchorPoint:CGPointMake(0.5, 0.5)];

//左上角

[yourView.layer setAnchorPoint:CGPointMake(0, 0)];

//右下角

[yourView.layer setAnchorPoint:CGPointMake(1, 1)];

可设参数:

旋转的另一种实现:(以下代码绕z轴旋转180度)

    [self.topViewController.view.layer setAnchorPoint:CGPointMake(0.5, 0.5)];

    [self.topViewController.view.layer setTransform:CATransform3DMakeRotation(0, 0, 0, 1)];

    [UIView animateWithDuration:8 delay:0.0f options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveEaseIn animations:^{

        [self.topViewController.view.layer setTransform:CATransform3DMakeRotation(3.1415926, 0, 0, 1)];

    } completion:^(BOOL finished) {

    }];

上一篇 下一篇

猜你喜欢

热点阅读