Ruta de fuente personalizada de iOS para UIWebViews

Tengo una UIWebView y tengo una fuente personalizada que quiero cargar en un documento html editable que mostraré a través de UIWebView. En mi carpeta SupportingFiles (resources) tengo "Nosifer-Regular.ttf" … Para usar la fuente personalizada en mi HTML, necesito la ruta (URL) para el mosaico de la fuente … Intenté hacer esto, pero no ' Parece que funciona … ¿alguna idea?

bundle = [NSBundle mainBundle]; pathFont = [bundle bundlePath]; fontURL = [NSBundle pathForResource:@"Nosifer-Regular" ofType:@"ttf" inDirectory:pathFont]; path_font = [fontURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; fileAppend = [[NSString alloc] initWithFormat:@"file://"]; path_font = [[NSString alloc] initWithFormat:@"%@%@", fileAppend, path_font]; 

El HTML (CSS):

 @font-face { font-family: 'Nosifer'; font-style: normal; font-weight: 400; src: local('Nosifer'), local('Nosifer-Regular'), url('%@') format('truetype'); } 

Donde% @ se reemplaza por "path_font" (definido anteriormente en el primer bloque de código)

En primer lugar, agregue "Fuentes proporcionadas por la aplicación" info.plist en su info.plist . Será una matriz como

 item0 myFont.otf item1 anotherFont.ttf 

o algo.

En HTML, use font-face para agregar una fuente. Y coloque sus files de fonts en el mismo directory con el file html. Si HTML se genera dinámicamente y no se muestra en el package, entonces debe copyr la fuente.

Buena suerte.

Agregue su fuente personalizada en su proyecto. Entonces

Obtener nombre de fuente

  UIFont *font = [UIFont fontWithName:@"Your-Custom-font" size:20]; 

Luego crea cadena html

 NSString *htmlHeader=[NSString stringWithFormat:@"<html><head><head><link rel=\"stylesheet\" type=\"text/css\" href=\"file://localhost%@\"></head><body><font face=\"%@\"; size=\"4\">HI</font></body></html>",cssPath,font.familyName]; 

Buena suerte.

Así es como agregaría la fuente a su Info.plist:

  <key>UIAppFonts</key> <array> <string>Nosifer-Regular.ttf</string> </array> 

Luego, use @ font-face según esta otra respuesta .

Conseguí un ejemplo de código html trabajando aquí.

 <html> <head> <style type='text/css'> p.p1 {margin: 0.0px 0.0px 0.0px 30.0px; font: 34.0px;} @font-face { font-family: 'Nosifer'; font-style: normal; font-weight: 400; src: local('Nosifer'), local('Nosifer-Regular'), url('Nosifer-Regular.ttf') format('truetype'); } .nosifer { font-family: Nosifer; } </style> </head> <body allowtransparency='true'> <p class="nosifer">Nosifer ABCabc</p> </body> 

Como puede ver, usé una class CSS para definir la fuente más fácilmente. No estoy seguro de qué significa todo ese código CSS dentro de font-face, pero parece funcionar.

Confirmé que NECESITAS agregar "Nosifer-Regular.ttf" a la matriz de fonts proporcionada por la aplicación en el file * -info.plist (key: Fuentes proporcionadas por la aplicación). Por cierto, busqué en Google Nosifer-Regular.ttf y lo encontré en un sitio ruidoso aquí. Realmente funcionó sin embargo: http://www.ffonts.net/Nosifer.font.download

Entonces, también pude cargar un OTF que voy a usar en mi caso. En el CSS, cambié el formatting de truetype a opentype.