在 iPhone 中使用缩放图像翻转滚动视图

Posted

技术标签:

【中文标题】在 iPhone 中使用缩放图像翻转滚动视图【英文标题】:Flip scroll view with zoomed image in iPhone 【发布时间】:2014-11-13 17:03:54 【问题描述】:

我有 2 个滚动视图,其中包含图像视图,

下面是层次结构,View--ScrollView--UIImageView--Image

我添加了双指缩放功能,以便用户可以放大、缩小图像。

现在,在翻转滚动视图时,如果图像已被缩放并且我将视图翻转到后滚动视图,我希望将图像重置为其原始位置。

我该怎么做?

【问题讨论】:

【参考方案1】:

您可以使用 UIScrollView 委托方法:scrollViewWillBeginDragging。 这会告诉您滚动何时开始。此时可以重新设置缩放和位置:

func scrollViewWillBeginDragging(scrollView: UIScrollView) 
   scrollView.zoomScale = 1
   scrollView.contentOffset = CGPoint(x: 0, y: 0)

(swift代码但在objc中类似)

【讨论】:

:但是由于缩放级别的增加,我的滚动视图的内容大小已经增加。我该如何处理? mmh...也许还有更多问题。你有 2 个滚动视图:你如何从一个滚动视图转到另一个?当您从一个滚动视图切换到另一个滚动视图时,您是否希望目标滚动视图内的图像位于 (0,0) 处,即使它被缩放? 使用翻转过渡从一个滚动视图翻转到另一个滚动视图。现在我想要实现的是,如果第一个滚动视图已缩放到以下参数,didZoom: ZoomScale: 2.73;内容大小:873.06712103179188, 1375.0807156250723;滚动视图:320, 504。我希望后视图也将其参数设置为相同的大小,不同的图像缩放到与第一个相同的级别 两个滚动视图是否在同一个视图控制器中?如果是,为什么不能在 scroll_2 出现时简单地将 scroll_1 contentOffset 和 zoomScale 值应用于 scroll_2 contentOffset 和 zoomScale。 嗨 Walfer,在玩了很多之后,我将滚动视图的 zoomScale 重置为 1.0,以便视图重置为默认值。现在,我面临的另一个问题是我想移动将缩放比例代码重置为翻转动画的完成块,使其看起来不马虎。我该怎么做?

以上是关于在 iPhone 中使用缩放图像翻转滚动视图的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollview 子视图在缩放后无法识别平移手势

在可缩放的滚动视图中禁用图像视图缩放

如何在 iOS 的分页滚动视图中缩放图像?

在滚动视图中使用自动布局缩放图像如何居中?

Xcode:在滚动视图中缩放图像

在 ios 的滚动视图中绘制缩放的图像视图?