iOS视图'折叠'动画

boz*_*boz 6 iphone objective-c ipad ios

我已经看到了这个很好的效果,我想在我正在设计的应用程序中使用类似的东西.我假设这不是"标准"过渡之一.

有谁知道这样的事情是如何实现的?我并不是真的在详细的代码示例之后,更多的是在正确的方向上进行高级概述/推动.

Ole*_*ann 6

我会这样做:

  1. 创建两个图层:一个用于左侧,另一个用于要折叠的视图的右侧.

  2. 在这些层中,分别渲染要折叠的视图的左侧或右侧的图像.renderInContext:在大多数情况下,该方法应该这样做.

  3. 两层的初始位置位于屏幕的左边缘(x = 0.0).将左图层的锚点设置为(0.0,0.5),将右图层的锚点设置为(1.0,0.5).您还应该围绕y轴将旋转变换分配给图层:左图层为-90度,右图层为+90度(或者反过来,我不确定;尝试一下).

  4. 现在,当用户激活折叠操作时,启动动画(或同时使用手势),将两个图层的变换重置为单位矩阵.您可能还需要调整右侧图层的位置,使其不会粘附在屏幕的左边缘.

  5. 仅当动画/手势完成时,才将两个图层(仅包含静态图像)替换为要折叠的实际视图.