2011-01-10 78 views
1

我想旋轉一個CALayer到一個特定的角度,但是,一旦動畫完成後,圖層會跳回到原來的位置。我將如何正確地旋轉圖層以保持其最終目的地?如何永久性地讓CALayer在最終位置旋轉?

這裏是我使用

CABasicAnimation *rotationAnimation =[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; //Rotate about z-axis 
[rotationAnimation setFromValue:[NSNumber numberWithFloat:fromDegree]]; 
[rotationAnimation setToValue:[NSNumber numberWithFloat:toDegree]]; 
[rotationAnimation setDuration:0.2]; 
[rotationAnimation setRemovedOnCompletion:YES]; 
[rotationAnimation setFillMode:kCAFillModeForwards]; 

任何建議的代碼?謝謝。

回答

2

好吧我通過將removeOnCompletion設置爲NO來修復它。

[rotationAnimation setRemovedOnCompletion:NO]; 
+0

匿名編輯器說:「這不是正確的答案。使最終值」stick「的正確方法是將圖層的transform屬性設置爲動畫的最終值。 (從編輯審查;我投票拒絕,因爲它應該是一個評論;我不知道他們是否正確) – geoffspear 2013-03-13 17:54:58

2

您正在添加動畫,但您並未修改實際的基礎屬性。創建動畫後,只需將圖層的transform屬性設置爲包含相同的最終結果。