展开/折叠UITableViewCell以实现类似Evernote的过渡

Emm*_*ett 15 objective-c uiviewcontroller uiviewanimationtransition ios custom-transition

我有兴趣实现视图控制器之间的转换,非常类似于Evernote的iOS应用程序中的转换:

在此输入图像描述

当点击"位置"时,它会平滑地扩展为看起来像UINavigationController的绿色边框.要折叠它,我可以点击"返回"或从屏幕左侧滑动以逐渐过渡到主屏幕.

我不是在寻找准确的代码示例来进行复制粘贴,而是寻找有关哪些概念和Apple API可以利用的高级指导.进一步来说,

  • 这可能使用哪些转换/动画API?
  • "场所"展开后,如何在整个视图控制器周围实现绿色边框?

kas*_*rak 1

需要考虑的方法:您可以使用UICollectionView具有两种不同布局的 a。未展开的布局可以只是 a UICollectionViewFlowLayout,展开的布局可以是一个子类,它会缩小/淡化除要展开的单元格之外的所有单元格。然后您可以使用setCollectionViewLayout:animated:它们之间进行切换。

绿色边框只是父视图的背景,因为这不涉及UINavigationController.

如果您希望使用交互式滑动手势从展开的布局返回,您可以将 a 连接UIScreenEdgePanGestureRecognizer到交互式集合视图布局动画(请参阅 参考资料startInteractiveTransitionToCollectionViewLayout:completion:)。