2012-07-02 6 views
7

sto facendo un lettore epub, in cui mi sto caricando le pagine HTML nel mio webview:Cambio textcolor di UIWebView

[_webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:_pagesPath]]]; 

Ora voglio cambiare colore di sfondo e il colore del testo e delle mie pagine HTML. Ho cambiato colore di sfondo del mio WebView usando,

self._webview.backgroundColor = [UIColor blackColor]; 
self._webview.opaque = NO; 

che sta lavorando, ma voglio anche cambiare il colore del testo del mio WebView. Come faccio a fare questo?

+0

css tuo html pagina – janusbalatbat

+0

Esiste un modo per farlo programatically? perché su alcune pagine voglio il colore del testo come nero e in alcune pagine voglio il colore del testo come bianco. – ketansahasrabudhe

+0

avrà un problema se si colora il testo usando css? volevi dire che vuoi cambiare il colore del testo di UN SINGOLO .html in bianco o nero? – janusbalatbat

risposta

10

In questo questo codice color:#fff tag utilizza per il colore del testo #fff usare il colore nero

NSString *webStr [email protected]"Your text use"; 

[self._webview loadHTMLString:[NSString stringWithFormat:@"<div id ='foo' align='left' style='line-height:18px; float:left;width:300px; font-size:13px;font-family:helvetica;background-color:transparent; color:#fff;>%@<div>",webStr] baseURL:nil]; 

se si utilizza html locale l'uso

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html"]; 

NSString* text = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil]; 
NSLog(@"%@",htmlFile); 

NSLog(@"Hello"); 

[self._webview loadHTMLString:[NSString stringWithFormat:@"<html><body bgcolor=\"#000000\" text=\"#FFFFFF\" face=\"Bookman Old Style, Book Antiqua, Garamond\" size=\"5\">%@</body></html>", text] baseURL: nil]; 
+0

sto caricando il file html localmente dalla mia macchina in questo modo, '[_webview loadRequest: [NSURLRequest requestWithURL: [NSURL fileURLWithPath: _pagesPath]]];' – ketansahasrabudhe

+0

vedere la mia risposta di aggiornamento – Deepesh

+0

cosa è 'changeColor' nel tuo EDIT? non ho aggiunto nessuna classe come 'changeColor' nel mio css – ketansahasrabudhe

0

tenta di aggiungere il codice nel tuo HTML archivia ciò che ottieni dal server ... solo tu puoi modificare il colore del testo .... o aggiungere del codice HTML prima del tuo file HTML per cambiare il colore del testo

0

provare questo ...

  1. Analizzare il file html.
  2. Mostra i contenuti secondo le tue esigenze.

Spero che questo aiuti.

5
[_webview loadHTMLString:[NSString stringWithFormat:@"<html><body style=\"background-color: white; font-size: 17; font-family: HelveticaNeue; color: #ffffff\">%@</body></html>", strDataFromHTML] baseURL: nil]; 
+0

amico sto leggendo un file html dal mio simulatore percorso, come '/ Users/krunal/Libreria/Application Support/iPhone Simulator/5.0/Applicazioni/D414BC19-C005-4D93-896D-A6FB71DE4D21/Documents/first.html' e non so, quale sarà il contenuto all'interno 'first.html' – ketansahasrabudhe

1

I made a method che avvolge una parte di testo in un corpo HTML con lo stile corretto per un dato UIColor e UIFont.

semplicemente pop il codice HTML generato nella WebView:

NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>" 
              textFont:[UIFont systemFontOfSize:10] 
              textColor:[UIColor grayColor]]; 
[webView loadHTMLString:htmlString baseURL:nil]; 
+0

Grazie, ha rubato il tuo codice e creato una categoria da esso :) –

1

Qui è una piccola estensione Swift per gestire questa situazione:

import UIKit 

extension String 
{ 
    func htmlFormattedString(font:UIFont, color: UIColor) -> String 
    { 
     var numberOfColorComponents:Int = CGColorGetNumberOfComponents(color.CGColor) 
     var colorComponents = CGColorGetComponents(color.CGColor) 

     var colorHexString = "" 
     if numberOfColorComponents == 4 { 
      var red = colorComponents[0] * 255 
      var green = colorComponents[1] * 255 
      var blue = colorComponents[2] * 255 

      colorHexString = NSString(format:"%02X%02X%02X", Int(red), Int(green), Int(blue)) as String 
     } else if numberOfColorComponents == 2 { 
      var white = colorComponents[0] * 255 

      colorHexString = NSString(format:"%02X%02X%02X", Int(white), Int(white), Int(white)) as String 
     } else { 
      return "Color format noch supported" 
     } 

     return NSString(format: "<html>\n <head>\n <style type=\"text/css\">\n body {font-family: \"%@\"; font-size: %@; color:#%@;}\n </style>\n </head>\n <body>%@</body>\n </html>", font.familyName, String(stringInterpolationSegment: font.pointSize), colorHexString, self) as String 
    } 
} 
+0

Ciao, puoi dirmi come posso caricare la mia stringa in web view dopo aver passato questa estensione – user1960169