Cómo cambiar la fuente pnetworkingeterminada de UIWebView

¿Qué fuente utiliza UIWebView de forma pnetworkingeterminada? Me gustaría poder cambiar eso. Pero no quiero hacerlo en la cadena html, sino que quiero tener algo como:

[webView setFont:[UIFont fontWithName:@"GothamRounded-Bold" size:14] 

¿Hay tal propiedad o alguna otra forma?

Simplemente prefiégale una label <font face> a su cadena antes de cargarla en la webView.

 NSString *body = [plist objectForKey:@"foo"]; NSString *htmlString = [NSString stringWithFormat:@"<font face='GothamRounded-Bold' size='3'>%@", body]; [webView loadHTMLString:htmlString baseURL:nil]; 

Puede usar su object UIFont (para que pueda configurarlo y modificarlo más fácilmente), pero envuelva el HTML en un span ; font tags de font han quedado en desuso desde HTML 4.01 .

 UIFont *font = [UIFont fontWithName:@"GothamRounded-Bold" size:14]; 

Suponiendo que ya tiene el NSString *htmlString creado, puede usar las properties de la fuente:

 htmlString = [NSString stringWithFormat:@"<span style=\"font-family: %@; font-size: %i\">%@</span>", font.fontName, (int) font.pointSize, htmlString]; 

Alternativamente, puede simplemente proporcionar los valores en lugar de utilizar un object UIFont :

 htmlString = [NSString stringWithFormat:@"<span style=\"font-family: %@; font-size: %i\">%@</span>", @"GothamRounded-Bold", 14, htmlString]; 

Puede intentar configurar la fuente inyectando una línea de JavaScript como esta:

 [webView stringByEvaluatingJavaScriptFromString: @"document.body.style.fontFamily = 'GothamRounded-Bold'"]; 

Existe la solución rápida 3:

 func webViewDidFinishLoad(_ webView: UIWebView) { webView.stringByEvaluatingJavaScript(from: "document.getElementsByTagName('body')[0].style.fontFamily =\"-apple-system\"") } 

Acabo de poner la fuente pnetworkingeterminada de iOS para este ejemplo.

Aquí está mi solución fácil de usar y fácil de expandir con más configuraciones de fuente:

 myHTMLLabel = [[UIWebView alloc] initWithFrame:CGRectMake(myX, myY, myWidth, myHeight)]; myHTMLLabel.userInteractionEnabled=NO; myHTMLLabel.scalesPageToFit=NO; [myHTMLLabel setOpaque:NO]; myHTMLLabel.backgroundColor = myBackColor; NSString *myHTMLText = [NSString stringWithFormat:@"<html>" "<head><style type='text/css'>" ".main_text {" " display: block;" " font-family:[fontName];" " text-decoration:none;" " font-size:[fontSize]px;" " color:[fontColor];" " line-height: [fontSize]px;" " font-weight:normal;" " text-align:[textAlign];" "}" "</style></head>" "<body> <SPAN class='main_text'>[text]</SPAN></body></html>"]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[text]" withString: myText]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontName]" withString: myFontName]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontSize]" withString: myFontSize]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontColor]" withString: myFontColorHex]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[textAlign]" withString: myFontAlign]; NSLog(@"*** renderHTMLText --> myHTMLText: %@",myHTMLText); [myHTMLLabel loadHTMLString:myHTMLText baseURL:nil]; 

UIWebview usa la fuente que se establece en el HTML. No hay 'fuente pnetworkingeterminada'. Incluso si no se menciona específicamente ninguna fuente, no tiene acceso para configurarla. Todo está dentro del WebKit, al que no tenemos acceso.

Para Swift, uso este en webViewDidFinishLoad

 webView.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName('body')[0].style.fontFamily =\"HelveticaNeue\""); 

En caso de que alguien esté buscando una solución en Swift 3, usé esto (según la respuesta de Jterry):

 let font = UIFont.init(name: "Name-of-your-font", size: theSize) self.newsWebView.loadHTMLString("<span style=\"font-family: \(font!.fontName); font-size: \(font!.pointSize); color: #21367B\">\(yourString)</span>", baseURL: nil) 

Ten en count que aquí no estoy asegurándome de que la fuente no sea nula. Se podría agregar una verificación nula antes de cargar la cadena HTML. Aquí también estoy cambiando el color de la fuente agregando la opción de color en el estilo del span. Esto es completamente opcional.