Scrollview缩放中的大图像不起作用

问题描述 投票:0回答:1

我正在构建一个应用程序,要在其中显示图像为1260x1000的平面布置图,大于我的视图控制器的尺寸。我希望用户能够平移图像并进行放大和缩小,类似于地图在Mapview中的行为。

下面是我的视图控制器中的代码。当我运行模拟器时,图像正在平移,但放大和缩小均不起作用。关于如何修复我的代码的任何建议都将有所帮助。


class ViewController: UIViewController, UIScrollViewDelegate {
 var scrollView: UIScrollView!
    var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        imageView = UIImageView(image: UIImage(named: "myMap.pdf"))
        scrollView = UIScrollView(frame: view.bounds)
        scrollView.contentSize = imageView.bounds.size
        scrollView.addSubview(imageView)
        scrollView.delegate = self
        scrollView.minimumZoomScale = 0.3
        scrollView.maximumZoomScale = 5
        view.addSubview(scrollView)
    }
       func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return imageView
    }


}
ios swift uiscrollview uiimageview pinchzoom
1个回答
0
投票

您的函数签名错误:

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

注意:如果您希望在缩放pdf图像的同时保持基于矢量的渲染(因此缩放时不会变得模糊),则可能应该使用PDFKitPDFView

myMap.pdf文件添加到捆绑包中... << [not到资产目录中。

import UIKit import PDFKit class ZoomingPDFViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() guard let fileURL = Bundle.main.url(forResource: "myMap", withExtension: "pdf") else { fatalError("Could not load myMap.pdf!") } // Add PDFView to view controller. let pdfView = PDFView(frame: self.view.bounds) pdfView.autoresizingMask = [.flexibleWidth, .flexibleHeight] self.view.addSubview(pdfView) // Load myMap.pdf file from app bundle. pdfView.document = PDFDocument(url: fileURL) pdfView.autoScales = true pdfView.maxScaleFactor = 5.0 pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit } }
© www.soinside.com 2019 - 2024. All rights reserved.