如何从UICollectionView转换到UIViewController,如Pinterest / Evernote

时间:2014-04-06 21:54:08

标签: ios uicollectionview pinterest evernote

我有一个UICollectionView,当选择一个项目时,我希望它能够全屏显示。因此它将从单元格的大小过渡到全屏幕,并成为UIViewController。 Pinterest和Evernote都有这种行为,其中点击一个单元格将单元转换为全屏视图控制器。

有没有这样做的例子?我已经搜索了几个项目,但没有找到任何有关将单元转换为全屏视图控制器的说明。

Pinterest在此讨论:https://medium.com/@Pinterest_Engineering/behind-the-pins-building-pinterest-3-0-for-ios-100f57f6940

enter image description here

1 个答案:

答案 0 :(得分:19)

实现这种转变并不困难。就像文章所说的那样,他们定制了一个过渡来实现UIViewControllerAnimatedTransitioning协议,除此之外什么都没有。您需要计算新的大小,即您为动画设置的图像视图的位置。那就是它。

这两个应用程序都通过上述方法实现了类似的过渡效果。

https://itunes.apple.com/app/hua-ban-quan-qiu-you-mei-tu/id494813494?mt=8

这一个:

https://itunes.apple.com/app/mei-tu-sou-sou-wan-zhuan-wei/id781146829?mt=8


我几天前创建了这个repo。有了Swift,我几乎完成了这个过渡,除了一些小问题,这是我第一个基于Swift的实践演示项目。但是,如果你不是iOS开发新手并且你学习了Swift BTW,那就不难理解了。我将完成它并稍后修复错误。

在实际项目中,它比演示项目更复杂,但有了这个,也许你知道如何实现这种转变。

祝你好运。