119 votes

Comment faire un UIWebView transparent

J'ai une application avec une UITableView et un correspondant de l'affichage des détails pour chaque ligne. Dans la vue de détail, je dois afficher un texte et une image de fond (le texte est différent pour chaque ligne, mais l'image reste la même). La façon la plus simple, à mon avis, est de mettre le texte dans une .rtf fichier et l'afficher dans un UIWebView. Ensuite, il suffit de mettre un UIImageView derrière l' UIWebView.

J'ai essayé de mettre la UIWebViews'opacité à zéro de l'IB, mais il n'a pas aidé.

Pouvez-vous m'aider?

Merci à l'avance!

304voto

Ortwin Gentz Points 15102

Je recommande:

 webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
 

(la définition de ces propriétés dans Interface Builder fonctionnera pour iOS 5.0+, mais pour iOS 4.3, vous devez définir le backgroundColor dans le code )

Et incluez ceci dans votre code HTML:

 <body style="background-color: transparent;">
 

21voto

Nilesh Points 2135

Utilisez la méthode récursive ci-dessous pour supprimer le dégradé 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];
  }
}
 

7voto

kmiklas Points 431

Mise à jour rapide:

 webView.opaque = true
webView.backgroundColor = UIColor.clearColor()
 

Et encore, n'oubliez pas de mettre

 <body style="background-color: transparent">
 

Ou mieux encore, au lieu d'un style en ligne, dans votre feuille de style:

 body {
     background-color: transparent
}
 

3voto

Xavier John Points 368

J’ai pu faire mon UIWebView transparent en allant aux « Attributs Inspector » et décocher dessin Opaque.

Mon code HTML juste pour la référence.

0voto

damithH Points 956

Pour supprimer les parchemins et rendre les UIWebView transparents, essayez ce code ci-dessous:

 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];  
               }  
          }  
     }   
}  
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X