Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

376
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda