我有一個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