2014-02-10 25 views

回答

4

CATransformLayer用於在3D中轉換其子圖層,並且不會將它們壓平。

與正常層不同,變換層在Z = 0時不會將它們的子層投影(即變平)到平面中。

這件事情,如果你想要做的一組層的變換一起你會使用,但你不想因爲你想改變一個地方變換的靈活性,做到每一個個別。 ..類似於OpenGL中的相機/世界/模型轉換。這就是說,我從來沒有使用過它的機會,因爲我從來沒有嘗試過在LayerKit中做過真正的3D。我假設幾年前在WWDC上使用過一個堆棧演示,可能會有示例代碼。

如果我發現自己現在開始使用CATransformLayer時,我會切換到SceneKit,但那還不是iOS。

10

要充分了解什麼是CALayer的和CATransformLayer之間的差別,你應該閱讀這article

這是說明了如何使用CATransformLayer最好的教程。

但簡要地說,
考慮我們在相同的X,Y座標,但不同的Z創造400架飛機,並將其添加爲subLayers到scene.And某些角度旋轉場景的場景(CAlayer instance)。

因此,我們可以期待它的樣子,
enter image description here

但是,相反它看起來像,
enter image description here

這是由於事實的CALayer是無法管理一個3D的深度它只是將場景變成一個Z級別。爲了糾正這個深度問題,我們使用CATransformLayer,它有深入的理解和基於它的呈現。

注意:圖像取自文章。

+0

如果您認爲是解釋您的問題,請接受答案。 – santhu

相關問題