iOS中控件旋转:绕x,y,z轴

1,绕x,y,z轴旋转一样,只是改变下参数,下面会说明


方法一:旋转时过渡平滑

CABasicAnimation* rotationAnimation;

//绕哪个轴,那么就改成什么:这里是绕y轴 ---> transform.rotation.y

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

//旋转角度

rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI];

//每次旋转的时间(单位秒)

rotationAnimation.duration = 0.3;

rotationAnimation.cumulative = YES;

//重复旋转的次数,如果你想要无数次,那么设置成MAXFLOAT

rotationAnimation.repeatCount = 0;

[yourView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];


方法二:如同方法一,但是过渡时效果没有方法一的舒服,感觉差那么一点

//@param duration 持续时间

//@param delay  延时时间

//@param options  方式

[UIView animateWithDuration:3

                          delay:0

                        options:UIViewAnimationOptionRepeat

                     animations:^{

//你想绕哪个轴哪个轴就为 1,其中的参数(角度, x, y, z)

                         yourView.layer.transform=CATransform3DMakeRotation(M_PI, 0, 1, 0);

                     }

                     completion:^(BOOL finished) {

//你想绕哪个轴哪个轴就为 1,其中的参数(角度, x, y, z)

                         yourView.layer.transform=CATransform3DMakeRotation(M_PI, 0, 1, 0);

                     }];


你可能感兴趣的:(iOS,旋转,3D)