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

372
Vistas
WKWebView muestra pdf dentro de un borde, no quiero el borde

Tengo una vista personalizada que agrega un WKWebView como este:

 override func awakeFromNib() { super.awakeFromNib() loadWebView() } func loadWebView() { pdfWebView = WKWebView(frame: .zero) pdfWebView.navigationDelegate = self pdfWebView.translatesAutoresizingMaskIntoConstraints = false pdfWebView.isHidden = true self.addSubview(pdfWebView) ... add constrains to self anchors - top, left, right, bottom }

Cuando termina la carga, tengo esto:

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.8, execute: { SVProgressHUD.dismiss() webView.isHidden = false webView.isOpaque = true webView.adjustInsets() }) }

Tuve que ajustar las inserciones, porque en el iPhone X, a veces el pdf se pegaba en la parte inferior, en lugar de en la parte superior.

 extension WKWebView { func adjustInsets() { parentViewController?.automaticallyAdjustsScrollViewInsets = false scrollView.contentInset = .zero scrollView.scrollIndicatorInsets = .zero scrollView.contentOffset = .zero } }

El resultado es este:

Hay un borde gris.

borde completo

He intentado esto:

  1. configuración de vista, pdfWebView y pdfWebView.scrollView fondo con .white o .clear

  2. webView.isOpaque = false (este es el único que elimina la parte inferior del gris, pero no el borde)

ingrese la descripción de la imagen aquí

  1. He usado una extensión para establecer el color .clear en todas las vistas secundarias

     extension UIView { func clearBackgrounds() { self.backgroundColor = UIColor.clear for subview in self.subviews { subview.clearBackgrounds() } } }

Nada funciona para eliminar el borde . No puedo editar el pdf, porque este se descarga de ws y se usa en varias aplicaciones.

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

0

Solución: Encontré un truco para hacer esto, creo que puedes usarlo con un pdf que tenga un fondo blanco. Tiene la idea, puedes manipular esto con tu diseño.

 self.view.backgroundColor = UIColor.white let urlString = "http://www.africau.edu/images/default/sample.pdf" let string = "<html><body marginwidth=\"0\" marginheight=\"0\" style=\"background-color: transparent\"><embed width=\"100%\" height=\"100%\" name=\"plugin\" src=\"\(urlString)\" type=\"application/pdf\"></body></html>" webView.loadHTMLString(string, baseURL: nil)

Editar: si desea usar esto con datos PDF codificados en base64, puede usarlo con eso:

 var pdfBase64String = "" //Your pdf data if let decodedData = Data(base64Encoded: pdfBase64String, options: .ignoreUnknownCharacters) { pdfWebView.load(decodedData, mimeType: "application/pdf", characterEncodingName: "utf-8", baseURL: URL(fileURLWithPath: "")) }

Respuesta anterior: desactivar "WebKitDiskImageCacheEnabled" puede solucionar este problema. ¿Puedes probar esto antes de cargar el pdf?

 UserDefaults.standard.set(false, forKey: "WebKitDiskImageCacheEnabled") UserDefaults.standard.synchronize()
over 4 years ago · Santiago Trujillo Denunciar

0

Usaré PDFKit para iOS 11 + en esta vista personalizada con el respaldo de WKWebView para versiones anteriores. PDFView no tiene ningún fondo gris.

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