子类UICollectionViewTransitionLayout用于自动UINavigationViewController过渡动画

时间:2014-03-24 00:40:39

标签: ios animation layout transition collectionview

在将视图控制器推入/关闭UICollectionViewTransitionLayout堆栈时,是否可以子类化UINavigationController来更改自动(例如非交互式)动画?

苹果文档和互联网上的一些文章表明它应该是可能的:

  

如果您想要提供的不仅仅是从旧布局到新布局的线性转换,您需要自己子类并为项目提供布局属性

......但我还没有找到办法。

我想使用UICollectionViewController的{​​{1}}将一个集合视图控制器推到另一个上面(使用相同的数据源)。两个视图控制器使用useLayoutToLayoutNavigationTransitions的不同子类,我希望使用自定义UICollectionViewLayout进行转换,这些子类需要由UICollectionViewLayoutAttributes进行关键帧和修改。

我希望,只需实现transitionProgress即可,但只有在交互式转换时才会调用该方法。

我推出的最佳方法是在UICollectionView上调用collectionView:transitionLayoutForOldLayout:newLayout:并在完成处理程序中推送没有动画的新视图控制器。为了弹出视图控制器,我会挂钩到视图控制器的startInteractiveTransitionToCollectionViewLayout:completion:并检查堆栈中的当前视图控制器;如果它不存在,我可以再次执行-viewWillDisappear:

不知怎的,我猜有更好的方法......

0 个答案:

没有答案