代码之家  ›  专栏  ›  技术社区  ›  ed94133

如何在单独的纵向和横向uiviewcontroller之间平滑过渡?

  •  0
  • ed94133  · 技术社区  · 14 年前

    我正在使用苹果的示例代码来拥有单独的纵向和横向视图控制器(在OrientationChanged方法中显示/取消模式视图控制器)。但是,它产生了许多问题:

    1. 状态栏不旋转。如果我手动设置气压方向,我会得到非常奇怪的行为。
    2. 过渡非常突然,我更喜欢 传统的平滑动画, 尤其是因为…
    3. 90%的 查看更改,但有两个 图像应该看起来 相同(相同尺寸,相同位置,相同 方向)在两个景观中 和肖像模式。

    我的目标是一个更像股票应用程序中的旋转过渡。我怎样才能做到这一点?

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  0
  •   hanno    14 年前

    你可以用核心动画来实现。淡出其他视图中未显示的所有元素(通过设置不透明度动画)。移动和旋转每个视图中相同的对象。最后在第二个视图中淡入新对象。根据视图的复杂性,可能会变得相当复杂。看一看 these methods 要找到实现动画的位置,请执行以下操作:

    – willRotateToInterfaceOrientation:duration:
    – willAnimateRotationToInterfaceOrientation:duration:
    – willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:
    – didAnimateFirstHalfOfRotationToInterfaceOrientation:
    – willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration: