我有一个UICollectionView,当选择一个项目时,我希望它能够全屏显示。因此它将从单元格的大小过渡到全屏幕,并成为UIViewController。 Pinterest和Evernote都有这种行为,其中点击一个单元格将单元转换为全屏视图控制器。
有没有这样做的例子?我已经搜索了几个项目,但没有找到任何有关将单元转换为全屏视图控制器的说明。
Pinterest在此讨论:https://medium.com/@Pinterest_Engineering/behind-the-pins-building-pinterest-3-0-for-ios-100f57f6940
答案 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,那就不难理解了。我将完成它并稍后修复错误。
在实际项目中,它比演示项目更复杂,但有了这个,也许你知道如何实现这种转变。
祝你好运。