2011-07-07 6 views
47

Je charge une chaîne HTML dans un UIWebView afin de pouvoir afficher du texte enrichi. Jusqu'ici tout va bien. Mais j'ai un petit problème: dans mon fichier Nib, j'ai mis l'attribut background à vert. Cependant, lorsqu'il est affiché, l'arrière-plan est blanc. Puis, dans le fichier de classe, j'ai ajouté ce qui suit:Couleur de fond UIWebView

[myWebView setBackgroundColor:[UIColor greenColor]]; 
    [myWebView loadHTMLString:myString baseURL:nil]; 

Cependant, l'arrière-plan est toujours blanc. J'ai même essayé d'inverser l'ordre, mais ressort toujours sur fond blanc.

Il y a plus de texte que la taille de l'UIWebView. J'ai remarqué que lorsque je fais défiler la fin du texte, l'arrière-plan est vert. Comment puis-je obtenir le fond pour le texte lui-même d'être vert?

Pourriez-vous m'indiquer ce que je fais de mal? Très apprécié.

Répondre

116

Définissez la couleur d'arrière-plan dans votre code HTML lui-même en utilisant le balisage css.

Ou, définissez laopaque propriété de WebView à NO .. et définir l'arrière-plan de la vue de dessous au vert.

UIWebView eux-mêmes ne semblent pas comprendre la couleur de fond, car ils sont des documents de rendu.

+5

Oui, merci you1 j'ajouté; opaque à NO, et il est parfait maintenant . – Namhcir

+0

Mais encore une question - Je dois aussi afficher une vue riche dans les cellules de vue de table d'une vue de table dans une vue précédente. Est-ce que je vais avoir des ennuis si j'ajoute un webview à une tableviewcell? Sinon, comment afficher du HTML html dans une tableview? – Namhcir

+0

Puisqu'ils sont tous des uiviews vous pourriez obtenir en l'ajoutant. Mais vous devriez revoir certains des HIG d'Apple et la référence de l'API UITViewView. Il y a plusieurs avertissements inquiétants à propos de l'annulation de UITableCellView et de la transparence de l'arrière-plan. – Kal

23

Utilisez ce un ajout à votre code

[myWebView setBackgroundColor:[UIColor greenColor]]; 
[myWebView setOpaque:NO]; 
[myWebView loadHTMLString:myString baseURL:nil]; 
+1

La dernière ligne a fait l'affaire mais au lieu de myString j'ai écrit zéro. Puis j'ai chargé ma page actuelle. Merci! – Segev

7
webView.opaque = NO; 
webView.backgroundColor = [UIColor clearColor]; 
+1

Cela devrait être la réponse acceptée, car cela ne fonctionnerait pas avec la définition de la couleur d'arrière-plan de webview pour effacer la couleur. –

2

Testé Xcode8 et Swift 3

self.webView.isOpaque = false; 
self.webView.backgroundColor = UIColor.clear