在单个视图中一次缩放和平移两个图像

Posted

技术标签:

【中文标题】在单个视图中一次缩放和平移两个图像【英文标题】:Zooming and Panning of two images at a time in a single view 【发布时间】:2019-02-21 05:21:36 【问题描述】:

我想一次在一个视图中缩放和平移两个图像。当用户尝试捏合一个图像时,它应该将第一张图像的行为反映到另一张图像上,如果用户平移一张图像,它应该将另一张图像反映为第一张图像的行为方式。两个图像不应重叠。

我尝试过使用 UIScrollView 的单个图像,它可以完美运行,但是当涉及到两个图像时,我不知道如何故意调用 UIScrollView 委托方法 viewForZooming(in scrollView: UIScrollView) -> UIView?两个滚动视图。

【问题讨论】:

将每张图片放在自己的滚动视图中,并通过使用 UIScrollView Delegates 检测更改来设置一个滚动视图的内容偏移量和缩放比例。 @Akhilrajtr viewForZooming 在这个委托方法中应该返回哪个图像视图? 为滚动视图和viewForZooming委托方法创建出口,检查scrollView并取决于它是滚动视图A返回imageA还是滚动视图B返回imageB。然后使用scrollViewDidZoom委托并将scrollview的缩放比例设置为另一个。 @Akhilrajtr 它在缩放时工作得很好。但是当我试图平移/拖动图像视图时,我在 scrollViewWillEndDragging 委托方法中为每个滚动视图设置内容偏移量。问题是另一个滚动视图最后生效了,因为它是结束拖动,无论如何,两个图像视图同时拖动。 【参考方案1】:

为两个滚动视图创建出口,例如 scrollviewAscrollviewB。在viewForZooming委托方法中检查scrollView并取决于它是scrollviewA返回imageA还是scrollviewB返回imageB

然后使用scrollViewDidZoom委托并使用上面提到的相同检查将滚动视图的缩放比例设置为另一个。

对于拖动,尝试使用scrollViewDidScroll 委托方法并将一个滚动视图的内容偏移设置为另一个。

【讨论】:

以上是关于在单个视图中一次缩放和平移两个图像的主要内容,如果未能解决你的问题,请参考以下文章

我有一个滚动视图缩放错误的图像视图的问题

如何在android中实现图像视图的缩放效果?

如何在不缩放图像子视图的情况下缩放图像?迅速的ios

UIImageView 上的捏合、平移和双击手势

UIImageView:如何在平移和缩放后仅捕获可见内容

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