我有兴趣实现视图控制器之间的转换,非常类似于Evernote的iOS应用程序中的转换:
当点击“位置”时,它会平滑地扩展为看起来像UINavigationController的绿色边框。要折叠它,我可以点击“返回”或从屏幕左侧滑动以逐渐过渡到主屏幕。
我不是在寻找准确的代码示例来进行复制粘贴,而是寻找有关哪些概念和Apple API可以利用的高级指导。更具体地说,
答案 0 :(得分:3)
我认为它使用自定义过渡来实现放大效果。它可以通过使用此第三方框架:https://github.com/mluisbrown/LCZoomTransition作为模式来实现,因为目标视图控制器看起来像模式而不是目标视图控制器。
答案 1 :(得分:1)
从全屏幕周围的边界判断我会说它不是UINavigationController
而是两个视图控制器,它们之间有自定义转换。
这是在iOS7中引入的,你可以在网上找到很少的教程来实现任何自定义转换:
http://www.objc.io/issue-12/custom-container-view-controller-transitions.html
答案 2 :(得分:1)
需要考虑的方法:您可以使用具有两种不同布局的UICollectionView
。未展开的布局可以只是UICollectionViewFlowLayout
,展开的布局可以是缩小/淡化除要扩展的单元格之外的所有单元格的子类。然后,您可以使用setCollectionViewLayout:animated:
在它们之间切换。
绿色边框只是父视图的背景,因为这不会涉及UINavigationController
。
如果您希望交互式滑动手势从展开的布局返回,则将UIScreenEdgePanGestureRecognizer
连接到交互式集合视图布局动画(请参阅startInteractiveTransitionToCollectionViewLayout:completion:
)。