2015-10-16 98 views
4

我已经跨越很酷的过渡viewControllers之间就因为UIViewControllerAnimatedTransitioning协议是在IOS 7提供在共享两个viewControllers之间的图像最近我注意到Intacart的iOS应用中一个特别有趣的一个。一个过渡动画

这里是我的慢动作谈论动画: https://www.dropbox.com/s/p2hxj45ycq18i3l/Video%20Oct%2015%2C%207%2023%2059%20PM.mov?dl=0

首先,我认为这是类似于笔者在此教程详细介绍了什么,有一些额外的淡入和淡出的动画: http://www.raywenderlich.com/113845/ios-animation-tutorial-custom-view-controller-presentation-transitions

但是,如果仔细观察它,就好像第一个viewController淡出时产品图像在两个viewController之间转换一样。我认为有两个viewControllers的原因是因为当你向下滑动新视图时,仍然可以看到它后面的原始视图,而无需更改布局。

也许两个viewController实际上有产品图像(没有淡出),并以某种方式在完美的精度同时动画,其中一个淡入淡出。

你认为究竟是怎么回事呢?

怎么可能这样的过渡动画,它看起来像在两个viewControllers之间共享的图像编程?

+0

我认为它只是一个视图,因为美国可以关闭它如果u滑下的那一个,所以可以只改变而带来的子视图前(隐藏),并设置ImageView的阿尔法= 1 – Tj3n

回答

3

这可能是两种不同的观点和动画快照视图。实际上,这正是为什么发明快照视图的原因。

这就是我如何做到这一点在我的应用程序。观看红色矩形的运动为呈现视图上下滑动:

enter image description here

它看起来像红色视图离开第一视图控制器和进入第二视图控制器,但它只是一种错觉。如果您有自定义过渡动画,则可以在过渡期间添加额外的视图。因此,我创建了一个与第一个视图类似的快照视图,隐藏了真正的第一个视图,并移动了快照视图 - 然后删除快照视图并显示真正的第二个视图。 (看起来像标题已经从第一个视图控制器表格视图单元中松开并滑入第二个视图控制器中,但是这样做的好处在于它在很多应用程序中使用它)它只是一个快照视图:

enter image description here

+0

非常酷,我想我几乎明白发生了什么,但有几个问题; 快照视图是否指向红色矩形?你是否将新视图添加到转换containerView中,该视图是您正在转换并转换的viewController的父容器? –

+0

“您是否将新视图添加到转换containerView”正确。你可以把任何东西放在你想要的地方!在演示过程中它可以保持在那里。这也是例如popover背后的屏幕变暗实现;这只是一个额外的观点。 – matt

+0

你能提供一个示例代码吗? –