我想同时缩放CALayer并从一个CGrect(一个小按钮,一个按钮)转换到另一个(一个更大,居中的视图) )。基本上,这个想法是,用户触摸一个按钮,并从按钮,CALayer揭示和翻译和扩大到最终在屏幕上居中。然后CALayer(通过另一个按钮)缩回到按钮的位置和大小。如何撰写核心动画CATransform3D矩阵,以动画同步翻译和缩放动画
我通过CATransform3D矩阵对此进行动画处理。但CALayer实际上是UIView的支持层(因为我也需要响应者功能)。而应用我的规模或翻译转换单独工作正常。两者的连接(平移,后跟缩放)会偏移图层的位置,以便它在收缩时不与按钮对齐。
我的猜测是,这是因为默认情况下CALayer锚点位于其中心。该变换首先应用翻译,移动“大”CALayer以与其左上角的按钮对齐。然后,当缩放发生时,由于CALayer锚点位于中心,所有方向都向下缩放。在这一点上,我的图层是按钮的大小(我想要的),但位置是偏移的(导致所有点向图层中心缩小)。
有意义吗?
所以我想弄清楚是否而不将翻译+规模,我需要:
翻译
变化锚点到左上角。
比例。或者,如果我应该能够想出一些因子或常数来合并到转换矩阵的值中,以便它转化为一个位置,并抵消后续缩放将抵消的位置,然后最终的立场是正确的。
有什么想法?
谢谢!是的..中心财产;)我完全忽略了它。关于不发布代码,我只是认为它更像是一个概念性问题,所以发布代码不会增加太多的问题。虽然通过您的代码,但我意识到我可以使用该属性。再次感谢! – SaldaVonSchwartz 2012-01-27 17:43:10