Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

414
Vistas
¿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.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

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 }
over 4 years ago · Santiago Trujillo Denunciar

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 }
over 4 years ago · Santiago Trujillo Denunciar

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 }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda