繁体   English   中英

以另一个UIScrollView为内容放大UIScrollView

[英]Zooming in UIScrollView with another UIScrollView as the content

我正在尝试实现一个可以放大UIScrollView的方案。 我已经了解到,实现此目的的最佳方法是拥有一个无所不包的scrollView,它支持滚动,并在其中包含另一个UIScrollViewView(而不是在其中包含UIImageView的常规应用程序中)

这是我所拥有的:

class Editor: UIViewController, UIScrollViewDelegate {

    let menuHeight = CGFloat(60)
    var editor: LevelScrollView? = nil
    var scrollProxy = UIScrollView()

    override func viewDidLoad() {
        let contentFrame = CGRectMake(0,menuHeight,self.view.frame.width,self.view.frame.height-menuHeight)
        scrollProxy.delegate = self
        scrollProxy.backgroundColor = UIColor.redColor()
        scrollProxy.frame = contentFrame
        scrollProxy.showsHorizontalScrollIndicator = false
        scrollProxy.showsVerticalScrollIndicator = false
        scrollProxy.bounces = false 

        let editor = LevelScrollView(reference: scrollProxy)
        self.editor = editor
        scrollProxy.addSubview(editor)

        scrollProxy.contentSize = self.editor!.contentSize
        scrollProxy.minimumZoomScale = 1.0
        scrollProxy.zoomScale = scrollProxy.minimumZoomScale
        scrollProxy.maximumZoomScale = 20.0
    }

    func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) {
        print("scrollViewWillBeginZooming")
    }
    func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) {
        print("scrollViewDidEndZooming")
    }
    func scrollViewDidZoom(scrollView: UIScrollView) {
        print("scrollViewDidZoom")
    }

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

}

一些注意事项:

  • LevelScrollView是一个UIScrollView
  • 我删除了一些与此问题无关的内容,请让我知道查看整个内容是否有所帮助。
  • 正在调用viewForZoomingIn委托函数,并返回有效的UIView(LevelScrollView),但是无论我做什么,都永远不会调用其他三个。

由于这些原因,缩放无法正常工作。 我将如何成功完成此任务?

谢谢!

我能够找到的唯一解决方案是将整个scrollview嵌入一个单独的UIView中,然后启用该功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM