我有一个CATransform3DMakeRotation奇怪的问题。当旋转视图在上海华的中心,它看起来像这样:奇怪的角度与CATransform3DMakeRotation
这是它应该如何看。然而,当它在其他地方在上海华,比如说,在左下角,它看起来像这样:
。注意,向右侧倾斜。同样的事情发生在右下角时,只会向左倾斜。有什么方法可以让它随时随地倾斜吗?实现这种转换的代码如下:
CALayer *layer = view.layer;
CATransform3D aTransform = CATransform3DIdentity;
float zDistance = 1000;
aTransform.m34 = 1.0/-zDistance;
self.view.layer.sublayerTransform = aTransform;
CABasicAnimation *rotateAnim = [CABasicAnimation animationWithKeyPath:@"transform"];
rotateAnim.fromValue= [NSValue valueWithCATransform3D:CATransform3DMakeRotation(0, 0, 0, 0)];
rotateAnim.duration=0.12;
rotateAnim.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeRotation(20*M_PI/180, 1, 0, 0)];
rotateAnim.removedOnCompletion = NO;
rotateAnim.fillMode = kCAFillModeForwards;
[layer addAnimation:rotateAnim forKey:@"rotateAnim"];
您可能没有正确构建您的CATransform3D,很可能是因为忘记了翻译和旋转会相互影响。发布您用于生成转换的代码。 –
@RobNapier包含代码 – kopproduction