Swift - 捏缩放多个图像

时间:2016-01-06 00:28:27

标签: ios uiscrollview swift2 pinchzoom uipinchgesturerecognizer

我有一个滚动视图,它包含一个图像视图,它本身可以捏合和缩放。我的问题是,当我以编程方式向滚动视图添加其他图像视图时,他们正在进行缩放而不是主滚动视图。事实上,scrollView然后被“锁定”以进行平移和缩放。

我想要做的是“同步”我放在滚动视图上的所有图像以响应捏合和缩放,以便在我最终得到的任何zoomScale中,所有内容都以正确的“比例”大小显示。

这就是我在屏幕上放置新图像的方式:

let singleTapRecognizer = UITapGestureRecognizer(target: self, action: "scrollViewSingleTapped:")
    singleTapRecognizer.numberOfTapsRequired = 1
    singleTapRecognizer.numberOfTouchesRequired = 1
    scrollView.addGestureRecognizer(singleTapRecognizer)

这是添加图像的例程:

imageView = UIImageView(image: UIImage(named: "Fingerprint36x36.png"))
    imageView.tag = 1999
    imageView.center = CGPoint(x: pointInView.x, y: pointInView.y);

    scrollView.addSubview(imageView)

一旦发生这种情况,“self”似乎成为新的视图控件,而不是scrollView。

所以我“想”我的问题是:我如何将gestureRecognizer集中在ScrollView而不是“最顶级”的imageView?

我没有为UIPinchGestureRecognizer设置任何代码。它只是默认工作,因为我正在使用ScrollView。

感谢您的帮助。 :) 标记

1 个答案:

答案 0 :(得分:2)

好的,我想通了,想分享......

在委托中,我正在重复使用相同的变量作为我放置在背景上的图像。更改了图像名称,问题自行消失......

func viewForZoomingInScrollView(scrollView: UIScrollView!) -> UIView! {
  return imageView
}

imageView最初是我的背景名称,然后重新用作我的xy指针图像的名称。我在错误的地方寻找了很长时间,但终于找到了另一个相似的线程,这促使我看看这个功能。