• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

341
Views
¿Cómo deshabilitar acercar y alejar en pdfView?

Quiero tener justo lo que recibo después

 pdfView.autoScales = true

sin posibilidad de cambiar la escala.

Después de la ayuda de @carmine tenemos:

 import UIKit import PDFKit class ViewController: UIViewController { @IBOutlet weak var pdfView: PDFView! override func viewDidLoad() { super.viewDidLoad() setPdfFile() } override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) self.pdfView.autoScales = true } func setPdfFile() { if let path = Bundle.main.path(forResource: "Swift.org - Getting Started", ofType: "pdf") { let url = URL(fileURLWithPath: path) if let pdfDocument = PDFDocument(url: url) { pdfView.autoScales = true pdfView.displayMode = .singlePageContinuous pdfView.displayDirection = .vertical pdfView.document = pdfDocument pdfView.displaysPageBreaks = false pdfView.minScaleFactor = pdfView.scaleFactor pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit } } } }

Esto da tal resultado: https://gfycat.com/briefpowerlessbug

Pero si corres sin estas líneas:

 pdfView.minScaleFactor = pdfView.scaleFactor pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit

Recibirás el resultado que necesito pero con zoom: https://gfycat.com/presentconcretebunting

Quiero deshabilitar el zoom y hacer que el ancho de pdfView sea igual al ancho del archivo pdf.

almost 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Intenté varios métodos para deshabilitar el zoom de pellizco, incluida la anulación de canZoomIn (descubrí que no se invocó en el zoom de pellizco), establecer el método pdfViewWillChangeScaleFactor del delegado (descubrí que nunca se llamó) y establecer el factor de escala máximo y mínimo en la vista ( esto evitó que la vista se escalara automáticamente).

Al final, pude lograr lo que quería al agregar mi propio pellizcoGestureRecognizer a PDFView para anular el pellizcoGestureRecognizer incorporado de la vista. Para que su reconocedor de pellizco tenga prioridad, deberá crear un delegado para su reconocedor y anular el siguiente método:

 func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool { //Prefer this pinch recognizer over the default one to override pinch zoom if gestureRecognizer is UIPinchGestureRecognizer && otherGestureRecognizer is UIPinchGestureRecognizer { return true } } return false }
almost 3 years ago · Santiago Trujillo Report

0

Usar

 pdfView.minScaleFactor = pdfView.scaleFactor pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit

Y añadir

 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) self.pdfView.autoScales = true }
almost 3 years ago · Santiago Trujillo Report

0

La solución es crear un CustomPDFView y anular su propiedad de instancia canZoomIn :

 class CustomPDFView: PDFView { override func canZoomIn() -> Bool { return false } }

Entonces el @IBOutlet weak var pdfView: PDFView! debe ser del tipo @IBOutlet weak var pdfView: CustomPDFView! . También actualícelo en IdentyInspector para que no se bloquee.

Para obtener más información, consulte: canZoomIn de Apple Docs

puedeZoomIn

Devuelve un valor booleano que indica si el usuario puede ampliar la vista y hacer zoom.

Declaración

 var canZoomIn: Bool { get }
almost 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error