【问题标题】:iOS how to create interactive transition of image from one view controller to another?iOS 如何创建从一个视图控制器到另一个视图控制器的图像的交互式过渡?
【发布时间】:2017-02-25 21:07:44
【问题描述】:

我有一个 UICollectionView,其中每个项目都有一个 UIImage。当点击一个项目时,另一个视图控制器会被推送到导航堆栈上。我怎样才能做到这一点,以便 UIImage 通过交互式和动画转换从原始视图控制器传递到新视图控制器?有点像图像从原始视图控制器的单元格项目放大到新的视图控制器。

我正在寻找某种方式使其具有交互性。例如,当我点击集合视图上的图像时,它会放大到该图像全屏的新视图控制器。但是,我也希望能够通过缩小图像来消除这一点,以便它返回到以前的视图控制器。当前的照片应用程序很好地展示了这一点。这正是我想要的行为类型。

新的 uber 应用似乎很好地利用了这一点,您可以交互式地拖动物体 + 动画。

编辑:我不是在找人用勺子喂我代码 - 我正在寻找有关如何以最佳方式实现这一目标的更通用指南。某种方式让我能够以交互方式控制整个过渡。

【问题讨论】:

  • 这个问题的答案将成为一个教程,这不是一个简单的单行任务。 stackoverflow.com/help/on-topic 同样关于您的“交互式和动画过渡”,这是对您想要实现的目标的广泛描述。 “动画”和“互动”可以是任何东西。但是,即使详细说明您想要实现的目标也不会产生任何影响。
  • @Sneak 我知道我的问题可能有点太宽泛了。我不是在找人用勺子喂我代码——我在寻找关于如何以最好的方式实现这一目标的更一般的指导方针。某种方式让我能够以交互方式控制整个过渡。示例“有点像图像从原始视图控制器的单元格项目放大到新的视图控制器。”应该足够具体。
  • 你的意思是像我在这里展示的那种东西吗? stackoverflow.com/a/33179604/341994
  • @matt 你的答案是我在寻找这个时谷歌上出现的第一件事。唯一的问题是您的方法是动画的,但不是交互式的。我正在寻找某种方式使其具有交互性。例如,当我点击集合视图上的图像时,它会放大到该图像全屏的新视图控制器。但是,我也希望能够通过缩小图像来消除这一点,以便它返回到以前的视图控制器。当前的照片应用程序很好地展示了这一点。这正是我想要的行为类型。

标签: ios objective-c uiviewcontroller uinavigationcontroller uiimage


【解决方案1】:

你应该可以使用 UIViewControllerAnimatedTransitioning 来做到这一点。

本质上,您需要在 UICollectionViewCell 中找到 UIIMageView 的矩形,并将其传递给实现 UIViewControllerAnimatedTransitioning 的自定义动画对象。然后,动画师可以为同一图像创建一个新的 UIImageView 并对其进行动画处理以移动到图像将放置在新呈现的 UIViewController 上的位置。

这些教程帮助我做了类似的事情:

【讨论】:

  • 谢谢!我之前看过其中一个教程。唯一的问题是它是动画的,但不是“交互式的”。比如如何使动画具有交互性?新的 uber 应用程序似乎很好地使用了这一点,您可以交互式地拖动物体 + 动画。
  • @PranoyC 链接 custom-uiviewcontroller-transitions 在结尾处提供了一个小指南,介绍如何使用 UIViewControllerInteractiveTransitioning 使过渡动画交互。你看过那部分吗?当然,您需要根据自己的需要调整动画。
猜你喜欢
  • 2011-05-18
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多