我想同時縮放CALayer並從一個CGrect(一個小按鈕,一個按鈕)轉換到另一個(一個更大,居中的視圖) )。基本上,這個想法是,用戶觸摸一個按鈕,並從按鈕,CALayer揭示和翻譯和擴大到最終在屏幕上居中。然後CALayer(通過另一個按鈕)縮回到按鈕的位置和大小。如何撰寫核心動畫CATransform3D矩陣,以動畫同步翻譯和縮放動畫
我通過CATransform3D矩陣對此進行動畫處理。但CALayer實際上是UIView的支持層(因爲我也需要響應者功能)。而應用我的規模或翻譯轉換單獨工作正常。兩者的連接(平移,後跟縮放)會偏移圖層的位置,以便它在收縮時不與按鈕對齊。
我的猜測是,這是因爲默認情況下CALayer錨點位於其中心。該變換首先應用翻譯,移動「大」CALayer以與其左上角的按鈕對齊。然後,當縮放發生時,由於CALayer錨點位於中心,所有方向都向下縮放。在這一點上,我的圖層是按鈕的大小(我想要的),但位置是偏移的(導致所有點向圖層中心縮小)。
有意義嗎?
所以我想弄清楚是否而不將翻譯+規模,我需要:
翻譯
變化錨點到左上角。
比例。或者,如果我應該能夠想出一些因子或常數來合併到轉換矩陣的值中,以便它轉化爲一個位置,並抵消後續縮放將抵消的位置,然後最終的立場是正確的。
有什麼想法?
謝謝!是的..中心財產;)我完全忽略了它。關於不發佈代碼,我只是認爲它更像是一個概念性問題,所以發佈代碼不會增加太多的問題。雖然通過您的代碼,但我意識到我可以使用該屬性。再次感謝! – SaldaVonSchwartz 2012-01-27 17:43:10