您的位置:首页 > 移动开发 > IOS开发

ios layer 动画-transform.rotation

2015-11-02 14:33 405 查看
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)];

可设参数:

theAnimation.repeatCount = 0;

theAnimation.autoreverses = NO;

旋转的另一种实现:(以下代码绕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) {

}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: