【问题标题】:Zooming in UIScrollView with another UIScrollView as the content以另一个 UIScrollView 作为内容放大 UIScrollView
【发布时间】:2016-02-01 05:28:32
【问题描述】:

我正在尝试完成一个可以放大 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),但无论我做什么,都不会调用其他三个。

由于这些原因,缩放不起作用。我将如何成功地做到这一点?

谢谢!

【问题讨论】:

  • 所有缩放都是对缩放视图进行缩放转换(在您的示例中为editor)。它不会神奇地说,“哦,这是一个滚动视图,他实际上想让我放大它too”。

标签: ios iphone uiview uiscrollview


【解决方案1】:

我能找到的唯一解决方案是将整个滚动视图嵌入到单独的 UIView 中,然后为此启用缩放。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多