Swift 如何在UiImageView中平移UIImage?

Swift How to pan UIImage in UiImageView?

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

我已遵循 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
    }
}

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