6

我已经看到了这种很好的效果,我想在我目前正在设计的应用程序中使用类似的东西。我假设这不是“标准”转换之一。

有谁知道如何实现这样的目标?我并不真正追求详细的代码示例,更多的是高级概述/朝着正确的方向轻推。

4

1 回答 1

6

我会这样做:

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

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

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

  4. 现在,当用户激活折叠动作时,启动一个动画(或伴随一个手势),将两层的变换重置为单位矩阵。您可能还必须调整右侧图层的位置,使其不会紧贴屏幕的左边缘。

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

于 2012-05-04T10:37:26.857 回答