0

我正在嘗試創建一個CATransitionUIView複雜CATransition

我想將UIView移動到右側,同時(並始終在同一點上)旋轉它。

最好通過圖像來解釋。

我可以將其移動一個CATransition,也可以用CABasicAnimation旋轉它,但我不知道如何一起做這些。

謝謝。

Complex Transition http://img585.imageshack.us/img585/8949/stackover.png

+0

你希望它在兩者之間轉換成L形? – 2011-05-04 16:19:59

+0

是的,就像圖片 – saimonx 2011-05-04 16:21:07

回答

0

您應該考慮進行圖像的兩個副本,一個旋轉,並掩蓋他們倆,讓他們可以在L形放在旁邊給對方。

使用此技術,您將一次執行兩個翻譯(將蒙版和底層圖像移動到圖像A和T)。但請注意,旋轉將不會被動畫化。您將立即將圖像T置於旋轉狀態,並通過將其移動到遮罩下方(同時在圖像A上進行相反操作以隱藏它)來揭示它。所以你實際上並沒有將翻譯和旋轉合併到一個動畫中,而是在原始圖像(A)和旋轉副本(T)上僅使用掩膜進行翻譯。

您需要屏蔽另一個的右側和左側。面具的形狀應該有兩個相反的45度角,然後你可以把這些角度的邊緣放在一起形成L.隨着時間的推移,你只需要移動面具直到第一個圖像完全消失,而你留下你的最終狀態。

掩蔽部分是困難的部分。看到這個答案掩蓋與CoreGraphics的UIImage:masking a UIImage

掩模PNG基本上只是一個45度角一邊的矩形。你可以在你選擇的圖像編輯器(Photoshop,GIMP,Acorn)中創建它。

注意:這種方法將在角落創建一個尖銳的邊緣。另一種方法是當它們從垂直向下運動移動到水平向右運動時彎曲該角落周圍的像素。 (我認爲)這將涉及更多。

+0

我該怎麼做? – saimonx 2011-05-04 16:30:38

+0

不知道你問的是什麼部分,但我會猜掩蔽位,因爲這是最難的。看到這個問題/回答掩蓋與CoreGraphics的UIImage:http://stackoverflow.com/questions/2776747/masking-a-uiimage – RickDT 2011-05-04 21:31:14

1

- (空)scaleAndRotate:(UIImageView的*)MyView的andAngle:(浮點){角度

CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.5,1.5); 
CGAffineTransform rotateTrans =CGAffineTransformMakeRotation(angle * M_PI/180); 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.5]; 
myView.transform = CGAffineTransformConcat(scaleTrans, rotateTrans); 
[UIView commitAnimations]; 

}

在上述方法:用U想要什麼取代& ...... 它'll work ,, surely :) 全部最好

+0

謝謝,我會嘗試它! – saimonx 2011-05-25 14:18:54