如何将另一个屏幕放在当前视图的顶部,iphone

时间:2012-03-01 15:21:04

标签: iphone objective-c uiview core-animation

在iphone中播放音乐时,在标题为“Song”的主屏幕上,左上角有一个名为Stored的按钮,右上角有一个“Now Playing”按钮。如果我们单击“存储”,则会有一个动画以将“存储”视图显示到主屏幕。我的问题是我们如何做这样的动画。 欢迎任何评论。感谢

1 个答案:

答案 0 :(得分:2)

这是一个非常棘手的问题 - iOS正在使用的动画向用户表明他们正在切换应用程序。我将假设您想在自己的应用程序中重现此动画。这样做可能不是一个好主意,因为它会让用户感到困惑,但出于学术原因,让我们来探索。

假设您有两个要切换的视图。在如何设置过渡动画方面你有几个不同的选择:

  • 使用标准内置动画切换视图(通常是UINaivationController或presentModalViewController:动画:)。
  • 在视图上使用隐式动画。这并不困难,打破了模型 - 视图 - 控制器范例,除非两个视图都由同一个视图控制器管理。
  • 在CALayer视图中使用核心动画动画。这也打破了MVC。

当您向下移动列表时,您可以更好地控制动画,但还需要做更多工作。要重新创建您感兴趣的动画,您必须使用最后一个选项,因为动画是3D并且相当复杂。

要了解有关如何使用Core Animation从一个视图转换到另一个视图的更多信息,请查看this example on github。它将让您了解所涉及的内容,并指出您正确的方向,以创建您正在寻找的效果。