2012-10-23 88 views
0

我與動畫掙扎,像我想要什麼都找不到。我想將3D旋轉應用於視圖。像多維數據集旋轉一樣,視圖應該有兩個圖像,並且像iPhone通知動畫一樣從一個旋轉到另一個。我想要的動畫就像這樣:http://www.youtube.com/watch?v=pBgVbzBJqDc運用三維動畫,查看

我甚至不認爲如何做到這一點,所以任何幫助將非常感激!

在此先感謝!

回答

7

您可以通過設置一個CATransform3D與看法層上的變換應用3D動畫視圖。旋轉看起來非常平坦,沒有任何透視圖,因此您應該爲變換矩陣的第三行和第四列設置適當的值。

ObjC:

CATransform3D rotation = CATransform3DIdentity; 
rotation.m34 = -1.0/500.0; 
rotation = CATransform3DRotate(rotation, M_PI, 1.0, 0.0, 0.0); 
myView.layer.transform = rotation; 

斯威夫特:

var rotation = CATransform3DMakeRotation(CGFloat(M_PI), 1.0, 0.0, 0.0); 
rotation.m34 = CGFloat(-1.0/500.0) 
firstView.layer.transform = rotation; 

你會爲這兩種觀點適宜值的角度和位置他們,他們應該是在屏幕上。

,使它看起來像一個立方體旋轉,你也可以在變換矩陣旋轉前翻譯層立方體側的寬度的一半(所以它不會繞中心旋轉)。

rotation = CATransform3DTranslate(rotation, 0.0, 0.0, sideOfCube/2.0); 
+0

這是好的!你知道如何改變旋轉方向嗎? – Lukas

+0

通過將負角度動畫或通過將最後一個參數從1.0更改爲-1將動畫軸從z更改爲-z –

+0

我試過這樣,但是這不會改變任何內容。難道我做錯了什麼? 'CATransform3D旋轉= CATransform3DIdentity; rotation.m34 = -1.0/500.0; 旋轉= CATransform3DRotate(旋轉,M_PI,0.0,-1.0,0.0); _d3RightView.layer.transform = rotation;' – Lukas