iOS 如何创建图像从一个 View Controller 到另一个 View Controller 的交互式过渡?

标签 ios objective-c uiviewcontroller uinavigationcontroller uiimage

我有一个 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/

相关文章:

ios - 按钮单击事件(UIButton TouchUpInside 操作)不起作用 - IOS/Swift

swift - 导航后键盘消失

iOS:MapView 内的 ImageView

ios - UITableView 中可见单元格的数量

ios - 找不到“React/RCTDefines.h”文件

objective-c - 在 UITableViewCell 中动态查找 UIWebView 高度

objective-c - 在 32 位和 64 位上编码/解码 CGFloat

objective-c - ios 6.0.1 ALAssetsLibraryChangedNotification,试图了解发送的内容

ios - 获取对当前可见 View Controller 的引用

iphone - 在线检查 JSON 文件的更新并将其与本地存储的文件进行比较