2011-12-12 11 views
8

Uso una vista web para visualizar archivos PDF pequeños. En interés de la estética, me gustaría eliminar el borde gris alrededor del PDF. ¿Hay alguna manera de evitarlo? He visto varios recursos, ninguno de los cuales parece funcionar o la solución ya no funciona en iOS5.Eliminación de sombras de UIWebView

Además, ¿hay alguna forma de detener el desplazamiento si solo hay una página?

Gracias.

Respuesta

9

Las sombras son en realidad subvistas UIImageView del UIScrollView (o el equivalente en IOS5 UIWebView).

Así que en iOS4:

for (UIView* subView in [webView subviews]) 
{ 
    if ([subView isKindOfClass:[UIScrollView class]]) { 
     for (UIView* shadowView in [subView subviews]) 
     { 
      if ([shadowView isKindOfClass:[UIImageView class]]) { 
       [shadowView setHidden:YES]; 
      } 
     } 
    } 
} 

y en IOS5 y superiores:

for (UIView* shadowView in [webView.scrollView subviews]) 
{ 
    if ([shadowView isKindOfClass:[UIImageView class]]) { 
     [shadowView setHidden:YES]; 
    } 
} 
+0

No está funcionando aquí (xcode5, iOS7) ... – Colas

+0

@Colas no creo webviews tienen sombras bajo iOS7. –

+0

Estoy hablando de la sombra alrededor de la vista web, como un marco gris. – Colas

0

intenta quitar la frontera y la sombra:

[[yourView layer] setBorderColor: [[UIColor clearColor] CGColor]]; 
[[yourView layer] setBorderWidth: 0.0f]; 
[[yourView layer] setShadowColor: [[UIColor clearColor] CGColor]]; 
[[yourView layer] setShadowOpacity: 0.0f]; 
[[yourView layer] setShadowOffset: CGSizeMake(0.0f, 0.0f)]; 
3

funciona muy bien con iOS 9

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    for (UIView *object in webView.scrollView.subviews) { 
     if ([NSStringFromClass([object class]) isEqualToString:@"UIWebPDFView"]) { 
      UIView *pdfView = object; 
      for (UIView *pdfObjectSubview in pdfView.subviews) { 
       if ([NSStringFromClass([pdfObjectSubview class]) isEqualToString:@"UIPDFPageView"]) { 
        UIView *uiPDFPageView = pdfObjectSubview; 
        uiPDFPageView.layer.shadowOpacity = 0.0f; 
       } 
      } 
     } 
    } 
} 
+0

Funciona muy bien en iOS 8 también. –

+0

Tengo este pdf de 4 páginas. La sombra todavía están en las últimas 2 páginas? ¿Alguna idea de por qué? – Rhenz

0

Esto se trabajó para mí. Estoy utilizando controlador de navegación espero que le ayudará

self.navigationController.navigationBar.translucent = NO; 

una forma más está ahí, basta con ir a guión gráfico y seleccione Controlador de donde la vista Web está presente. Y van a atribuir inspector y desactive la

Ajustar Vista de desplazamiento insectos