Swift如何在UiImageView中平移UIImage?

时间:2017-04-30 00:28:18

标签: swift3 uiscrollview uiscrollviewdelegate

我有一个简单的测试应用程序,我想在其视图中平移图像。它不会平移或缩放,我看不出我的代码有什么问题。

我已经按照this教程,但在代码中实现了它。我已经使图像宽度与高度相同,所以我可以平移而不必缩放。

这是我的代码

import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {

    let scrollView: UIScrollView = {
        let scrollView = UIScrollView()
        return scrollView
    }()

    let zoomImageView: UIImageView = {
        let imageView = UIImageView()
        imageView.isUserInteractionEnabled = true
        imageView.clipsToBounds = true
        imageView.contentMode = .scaleAspectFill
        imageView.image = #imageLiteral(resourceName: "lighthouse")
        return imageView
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white 

        let screenSize = UIScreen.main.bounds
        let screenHeight = screenSize.height

        scrollView.frame = CGRect(x:0, y:0, width: screenHeight, height: screenHeight)
        scrollView.delegate = self
        scrollView.minimumZoomScale = 1.0
        scrollView.maximumZoomScale = 3.0

        zoomImageView.frame = CGRect(x:0, y:0, width: screenHeight, height: screenHeight)

        scrollView.addSubview(self.zoomImageView)

        view.addSubview(scrollView)
    }

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

1 个答案:

答案 0 :(得分:2)

在代码中搜索术语contentSize。你没有看到它,是吗?但关于滚动视图如何工作的最基本的事实是这样的:没有contentSize 的滚动视图无法滚动(即放置它时“平移”)。特别是,它必须具有大于其自身边界大小的内容大小,以便能够沿该轴(高度或宽度或两者)滚动。否则,没有什么可以滚动。