64 votes

Couleur de fond de l'UIWebView

Je charge une chaîne HTML dans une UIWebView afin de pouvoir afficher du texte riche. Jusqu'à présent, tout va bien. Mais j'ai un petit problème : dans mon fichier Nib, j'ai défini l'attribut d'arrière-plan sur le vert. Cependant, lorsqu'il est affiché, l'arrière-plan est blanc. Ensuite, dans le fichier de classe, j'ai ajouté ce qui suit

[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 l'arrière-plan reste blanc.

Il y a plus de texte que la taille de l'UIWebView. J'ai remarqué que lorsque je fais défiler la page au-delà de la fin du texte, l'arrière-plan est alors vert. Comment puis-je faire en sorte que l'arrière-plan du texte lui-même soit vert ?

Pourriez-vous me conseiller sur ce que je fais de mal ? Merci beaucoup.

159voto

Kal Points 14230

Définissez la couleur d'arrière-plan dans votre code html à l'aide de balises css.

Ou bien, définissez le de webview opaque à la propriété NO et définir le fond de la vue du dessous en vert.

UIWebView eux-mêmes ne semblent pas comprendre la couleur d'arrière-plan - puisqu'ils rendent des documents.

6 votes

Oui, merci1 J'ai ajouté le paramètre opaque à NO, et c'est parfait maintenant.

0 votes

Mais une autre question : j'ai aussi besoin d'afficher une vue riche dans les cellules d'une vue de table dans une vue antérieure. Aurai-je des problèmes si j'ajoute une webview à une cellule de tableview ? Sinon, comment puis-je afficher du html riche dans un tableview ?

0 votes

Puisqu'il s'agit d'uiviews, vous pourriez vous en sortir en l'ajoutant. Mais vous devriez revoir certains des HIG d'Apple et la référence de l'API UITableView. Vous y trouverez plusieurs avertissements inquiétants concernant le remplacement de UITableCellView et la transparence de l'arrière-plan.

30voto

ashokdy Points 413

Utilisez ceci en complément de votre code

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

1 votes

La dernière ligne a fait l'affaire mais au lieu de myString j'ai écrit nil. J'ai ensuite chargé ma page actuelle. Merci !

14voto

Nilesh Patel Points 525
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];

2 votes

Ceci devrait être la réponse acceptée car cela ne fonctionnerait pas avec le réglage de la couleur de fond de la vue web sur une couleur claire.

12voto

Testé dans Xcode8 et Swift 3

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

0voto

harish babu Points 1
UIWebView *webview =[[UIWebView alloc];

[webview setBackgroundColor:[UIColor whiteColor]];

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