我见过this nice effect,我想在我正在设计的应用中使用类似的东西。我假设这不是“标准”过渡之一。
有谁知道如何实现这样的目标?我不是真的在详细的代码示例之后,更多的是在正确的方向上进行高级概述/推动。
答案 0 :(得分:6)
我会这样做:
创建两个图层:一个用于左侧,另一个用于要折叠的视图的右侧。
在这些图层中,分别渲染要折叠的视图左侧或右侧的图像。在大多数情况下,renderInContext:
方法应该这样做。
两层的初始位置位于屏幕的左边缘(x = 0.0)。将左图层的锚点设置为(0.0,0.5),将右图层的锚点设置为(1.0,0.5)。您还应该围绕y轴指定旋转变换到左侧图层:左侧图层为-90度,右侧图层为+90度(或者反过来,我不确定;尝试一下)。
现在,当用户激活折叠操作时,启动动画(或同时使用手势),将两个图层的变换重置为单位矩阵。您可能还需要调整右侧图层的位置,使其不会粘附在屏幕的左边缘。
仅当动画/手势完成时,才将两个图层(仅包含静态图像)替换为您要折叠的实际视图。