在单个视图中一次缩放和平移两个图像
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】:
为两个滚动视图创建出口,例如 scrollviewA
和 scrollviewB
。在viewForZooming
委托方法中检查scrollView并取决于它是scrollviewA
返回imageA
还是scrollviewB
返回imageB
。
然后使用scrollViewDidZoom
委托并使用上面提到的相同检查将滚动视图的缩放比例设置为另一个。
对于拖动,尝试使用scrollViewDidScroll
委托方法并将一个滚动视图的内容偏移设置为另一个。
【讨论】:
以上是关于在单个视图中一次缩放和平移两个图像的主要内容,如果未能解决你的问题,请参考以下文章