UIScrollView中的UIImage加载缩放,而不是宽高比

时间:2015-08-12 22:06:23

标签: ios swift uiscrollview

我正在使用Xcode 6.4并使用swift编写。

现在我正在尝试在宽高比适合中显示一个简单的图像,然后可以放大。不幸的是,图像加载完全缩放。其他所有工作都很好,双击甚至导致看到图像方面适合。我怎么能改变我的代码,以便图像加载方面适合?

我的情况与

非常相似

UIImage Is Not Fitting In UIScrollView At Start

然而,目标c答案不再适用。

这是我的viewDidLoad代码

override func viewDidLoad() {
    super.viewDidLoad()

    imageView = UIImageView(image: UIImage(named: "image.png"))

    scrollView = UIScrollView(frame: view.bounds)
    scrollView.backgroundColor = UIColor.blackColor()
    scrollView.contentSize = imageView.bounds.size
    scrollView.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
    scrollView.contentOffset = CGPoint(x: 1000, y: 450)

    scrollView.addSubview(imageView)
    view.addSubview(scrollView)

    scrollView.delegate = self

    setZoomScale()
    setupGestureRecognizer()
}

这是我的setZoomScale()

代码
    func setZoomScale() {
    let imageViewSize = imageView.bounds.size
    let scrollViewSize = scrollView.bounds.size
    let widthScale = scrollViewSize.width / imageViewSize.width
    let heightScale = scrollViewSize.height / imageViewSize.height

    scrollView.minimumZoomScale = min(widthScale, heightScale)
    scrollView.zoomScale = 1.0
}

所有这些都来自在线教程

http://www.appcoda.com/uiscrollview-introduction/

提前谢谢!

2 个答案:

答案 0 :(得分:2)

解决方案,在我的setZoomScale函数中,我将scrollView的缩放比例设置为“1.0”而不是最小值

这是更正的代码,希望这有助于某人!

func setZoomScale() {
    let imageViewSize = imageView.bounds.size
    let scrollViewSize = scrollView.bounds.size
    let widthScale = scrollViewSize.width / imageViewSize.width
    let heightScale = scrollViewSize.height / imageViewSize.height

    let minZoomScale = min(widthScale, heightScale)
    scrollView.minimumZoomScale = minZoomScale
    scrollView.zoomScale = minZoomScale
}

答案 1 :(得分:0)

我尝试了Stephen Mather的答案中的代码,但是直到我添加了此UIScrollView委托方法后,它才起作用:

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return imageView
}