我有一个 UICollectionView,其中每个项目都有一个 UIImage。当点击一个项目时,另一个 View Controller 会被推送到导航堆栈上。我怎样才能做到这一点,以便 UIImage 通过交互式和动画过渡从原始 View Controller 传递到新 View Controller ?有点像图像从原始 View Controller 的单元格项目放大到新 View Controller 中。
我正在寻找一种可以交互的方式。例如,当我点击 Collection View 上的图像时,它会放大到新的 View Controller ,其中该图像是全屏的。不过,我也希望能够通过将图像缩小来消除此问题,以便它返回到之前的 View Controller 。当前的照片应用程序很好地证明了这一点。这正是我想要的行为类型。
新的 uber 应用程序似乎很好地利用了这一点,让你可以交互式+动画地拖动东西。
编辑:我不是在寻找有人给我提供代码 - 我正在寻找关于如何以最佳方式实现这一目标的更通用的指导方针。某种方式让我能够交互式地控制整个转换。
最佳答案
您应该能够使用 UIViewControllerAnimatedTransitioning 来做到这一点。
本质上,您需要在 UICollectionViewCell 中找到 UIIMageView 的矩形,并将其传递给实现 UIViewControllerAnimatedTransitioning 的自定义动画器对象。然后,动画师可以创建同一图像的新 UIImageView 并对其进行动画处理,以移动到新呈现的 UIViewController 上图像放置位置的矩形。
这些教程帮助我做了类似的事情:
关于iOS 如何创建图像从一个 View Controller 到另一个 View Controller 的交互式过渡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42461596/