滚动视图无法在swift中放大或缩小

时间:2015-04-04 19:59:07

标签: ios swift uiscrollview uiimageview uipageviewcontroller

我试图让我的图片能够在页面视图控制器内放大和缩小。

层:

- UIPageViewController

---- CustomPageContentController

------滚动型

--------的UIImageView

----------的UIImage

图像显示正常,但我无法通过缩幅放大或缩小。

如何通过swift中的代码启用此操作?

这就是我目前所拥有的:

class PublicationPageView: UIViewController, UIScrollViewDelegate{

    var pageIndex:Int = 0
    var publicationImageView:UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        println("pageIndex: \(pageIndex)")
        publicationImageView.contentMode = UIViewContentMode.ScaleAspectFit


        // Need to reposition the image
        publicationImageView.frame = CGRectMake(0, 0, view.frame.width, view.frame.height-65-65)
        println(publicationImageView.bounds.size)


        var scrollView = UIScrollView(frame: CGRectMake(0, 0, view.frame.width, view.frame.height-65-65))

        scrollView.addSubview(publicationImageView)
        scrollView.contentMode = UIViewContentMode.ScaleAspectFit
        scrollView.maximumZoomScale = 4.0
        scrollView.minimumZoomScale = 1.0

        self.view.addSubview(scrollView)



    }

}

这是最佳做法吗?或者有更好的方法来做这件事吗?我愿意接受建议。

提前致谢

2 个答案:

答案 0 :(得分:4)

您需要实现UIScrollViewDelegate方法

func viewForZoomingInScrollView(scrollView: UIScrollView!) -> UIView! {
  return imageView
}

这里返回UIView以考虑缩放。

答案 1 :(得分:1)

我花了很多时间调试这个并阅读SO答案。这是一个问题:在swift 3中它现在被称为:

func viewForZooming(in scrollView: UIScrollView) -> UIView?

如果您使用旧名称,它不仅可以在不给您任何错误的情况下工作。