我正在尝试制作一个与 Air bnb iOS 应用程序开头的动画非常相似的动画。
这是动画的视频:视频
这个想法是模拟一个层从非常靠近用户飞到最后粘在远处的表面上。
我读过一些关于操纵 的文章,layer.transform.m34
而对我帮助更大的是这篇文章。
通过在 z 轴上应用透视和平移,我设法让图层看起来更大。
这是我使用的代码:
CALayer *aLayer = [CALayer layer];
aLayer.frame = ...
aLayer.backgroundColor = ...
CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = 1.0f/-250.0f;
perspectiveTransform.m44 = 0.0f;
perspectiveTransform = CATransform3DTranslate(perspectiveTransform, 0.0f, 0.0f. -100.0f);
aLayer.transform = perspectiveTransform;
问题是我无法让它动画回到CATransform3DIdentity
. 我不习惯 CoreAnimation,所以我可能正在尝试一种不好的方法。如果有人能指出我做错了什么或更好的解决方案,那将有很大帮助。
提前致谢!