UIScrollView - 缩放里面的所有子视图(不仅仅是一个)

时间:2015-04-16 21:03:52

标签: ios swift uiscrollview

晚安!

我正在尝试缩放UIScrollView,更具体的所有子视图放在里面。

据我所知,我需要实现UIScrollViewDelegate方法:

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
    return subView // <--- subview inside my scroll view
}

在我的测试项目中,缩放只是简单地工作,直到我这样做。但是,通过这种技术,我只能缩放(1)单一视图。我的滚动视图有几十个子视图,我想要缩放它们。我可以通过在UIScrollView中放置一个UIView然后在这个容器视图中放置其他子视图来解决这个问题,但我想问一下是否有更好的解决方案?

我使用了自动缩放滚动视图的机制,后来又使用我自己的捏合手势识别器进行了播放:

override func viewDidLoad() {
    super.viewDidLoad()
...
    let pinchGesture = UIPinchGestureRecognizer(target: self, action: "pinchHandler:")

    scrollView.addGestureRecognizer(pinchGesture)
.
.
.
func pinchHandler(recognizer: UIPinchGestureRecognizer)
{
    if recognizer.state == UIGestureRecognizerState.Began
    {
        if recognizer.scale < 1.0 {
            scrollView.setZoomScale(1, animated: true)                
        } else {
            scrollView.setZoomScale(2, animated: true)                
        }                       
    }
}

在这两种情况下,只有1个视图被缩放(一个视图作为viewForZoomingInScrollView函数传递)

谢谢。

0 个答案:

没有答案