ios - open - uiwebview tutorial
Cómo hacer una UIWebView transparente (7)
En XCode 6.x desmarque Opaco y cambie la opacidad de fondo a 0% . Creo que otras versiones de XCode también funcionarán.
Tengo una aplicación con UITableView
y una vista de detalles correspondiente para cada fila. En la vista de detalles, tengo que mostrar un texto y una imagen de fondo (el texto es diferente para cada fila, pero la imagen sigue siendo la misma). La forma más fácil, en mi opinión, es poner el texto en un archivo .rtf y mostrarlo en un UIWebView
. Luego solo coloque un UIImageView
detrás de UIWebView
.
Intenté establecer la opacidad de UIWebView
en cero en IB, pero no ayudó.
¿Me puedes ayudar?
Para eliminar las volutas y hacer que UIWebView
transparente, pruebe este código a continuación:
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
for(UIView *view in webView.subviews){
if ([view isKindOfClass:[UIImageView class]]) {
// to transparent
[view removeFromSuperview];
}
if ([view isKindOfClass:[UIScrollView class]]) {
UIScrollView *sView = (UIScrollView *)view;
//to hide Scroller bar
sView.showsVerticalScrollIndicator = NO;
sView.showsHorizontalScrollIndicator = NO;
for (UIView* shadowView in [sView subviews]){
//to remove shadow
if ([shadowView isKindOfClass:[UIImageView class]]) {
[shadowView setHidden:TRUE];
}
}
}
}
Pude hacer que mi UIWebView fuera transparente yendo a ''Atributos Inspector'' y desmarcando Drawing Opaque.
Mi código HTML solo como referencia.
UIWebView* webView =(UIWebView *) [cell viewWithTag:100];
NSString* htmlContentString = [NSString stringWithFormat:
@"<html>"
"<style type=''text/css''>html,body {margin: 0;padding: 0;width: 100%%;height: 100%%;}</style>"
"<body>"
"<table style=''border:1px solid gray; border-radius: 5px; overflow: hidden;color:white;font-size:10pt'' cellspacing=/"0/" cellpadding=/"1/" align=''right''><tr>"
"<td>Hello</td><td>There</td>"
"</tr></table>"
"</body></html>"
];
[webView loadHTMLString:htmlContentString baseURL:nil];
Swift actualización:
webView.opaque = true
webView.backgroundColor = UIColor.clearColor()
Y nuevamente, no te olvides de configurar
<body style="background-color: transparent">
O mejor aún, en lugar de un estilo en línea, en su hoja de estilo:
body {
background-color: transparent
}
Use el método recursivo a continuación para eliminar el degradado de UIWebView:
[webView setBackgroundColor:[UIColor clearColor]];
[self hideGradientBackground:webView];
- (void) hideGradientBackground:(UIView*)theView
{
for (UIView * subview in theView.subviews)
{
if ([subview isKindOfClass:[UIImageView class]])
subview.hidden = YES;
[self hideGradientBackground:subview];
}
}
Yo recomiendo:
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
(Establecer estas propiedades en Interface Builder funcionará para iOS 5.0+, pero para iOS 4.3 debe establecer el color de fondo en el código )
E incluye esto en tu código HTML:
<body style="background-color: transparent;">
Para Swift 3 y Xcode 8
self.webView.isOpaque = false;
self.webView.backgroundColor = UIColor.clear