4

在 iOS Facebook 应用程序中,当您点击照片时,照片会占据整个屏幕,然后您可以向上或向下拉动照片以关闭视图。拉动照片可以让您看到下面的屏幕。

我很好奇实现这一点的最佳方法,因为我不完全确定这是否是视图控制器之间的实际转换,或者只是一些在当前视图控制器中呈现子视图的花哨动画。

前者会很有趣,以维护视图控制器范式并保持所有内容的分隔。如果是后者,封装的最佳方法是什么?

4

3 回答 3

4

在我看来,无论哪种方式你都可以做到这一点,但我认为你可能应该将其作为自定义模态转换来追求。在点击图像会导致它转换到图像视图(我认为它是一个模态视图控制器)时,在我看来,当您查看图像时,在 y 轴上的某个阈值内向上或向下滑动图像只是移动,但是一旦您越过中心上方或下方的某个点,它就会告诉视图控制器在用户释放拖动时关闭,假设拖动已完成高于或低于中心的该阈值。拖动手势还导致模态视图控制器本身的不透明度根据拖动到中心的距离而淡化。当用户确实在阈值之外释放拖动时,自定义转换调整图像的大小并将其动画化回它在主视图控制器中的位置。我认为这也可以在自定义转换中完成,但是,我没有亲自尝试过。

于 2013-01-11T18:46:49.437 回答
1

我找到了一些熟悉的,你可以从这里学习如何实现

https://github.com/Kalvar/ios-KRImageViewer

于 2013-04-25T09:43:40.767 回答
0

我需要类似的东西,另外我想要一些可以与 CocoaPods 一起使用的东西。我最终找到了 UIPhotoGallery ( https://github.com/ethan605/UIPhotoGallery )。它在 CocoaPods 存储库中,它有多种实现类型,最重要的是,文档是可以理解的。您可能需要添加的唯一一件事是关闭滑动手势,但这不应该太难添加到这个库中。

作为旁注,我尝试了 ios-KRImageViewer,但因为我发现它有问题并且不在 Pods 存储库中,所以将其关闭。

于 2013-07-16T18:39:01.747 回答