我有一个包含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”上绘制我想要的内容?
有人可以通过建议或示例指出我正确的方向来解决我的问题吗?