在滚动视图中放大和缩小所有子视图

时间:2016-02-04 01:04:04

标签: ios swift uiscrollview zooming subviews

我有一个包含2个子视图的滚动视图:第一个是图像视图,第二个是(在第一个视图之上)是UIView,用户可以在其中绘制他想要的内容。

我已经实现了滚动视图委托方法viewForZoomingInScrollView(scrollView: UIScrollView),因此我可以根据需要同时放大和缩小两个子视图。

为了做到这一点,我创建了一个额外的视图(下面的代码中的“contView”),其中包含前面提到的子视图并将其添加为滚动视图的子视图。该视图是委托方法返回的视图 viewForZoomingInScrollView(scrollView: UIScrollView)

您可以在这里找到代码:

import UIKit

class ViewController: UIViewController {

    //The view where users can draw what they want
    @IBOutlet weak var drawingView: DrawningView!

    //The imageView behind the "drawingView"
    @IBOutlet weak var imageView: UIImageView!

    //The view that contains "imageView" and "drawingView" 
    @IBOutlet weak var contView: UIView!
    @IBOutlet weak var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()

        scrollView.minimumZoomScale = 1.0
        scrollView.maximumZoomScale = 5.0
        scrollView.contentSize = CGSize(width: view.bounds.width, height: view.bounds.height)
    }
}

extension ViewController: UIScrollViewDelegate {

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return contView
    }
}

这是我的问题:缩小时,“contView”不允许我在“drawingView”上绘制任何内容。

可能是因为即使缩放过程停止,委托方法返回的视图仍然有效。

我是否必须在“scrollViewDidEndZooming()”委托方法中实现某些功能,以便能够再次在“drawingView”上绘制我想要的内容?

有人可以通过建议或示例指出我正确的方向来解决我的问题吗?

0 个答案:

没有答案