La fuente personalizada aparece en IB pero no en el dispositivo.

Estoy intentando usar fonts de la familia Open Sans. Agregué las fonts a mi proyecto Xcode, comprobé que se agregaron al package de resources de mi aplicación y agregué las fonts a mi file Info.plist.

Cuando edito un XIB en Interface Builder, puedo usar la fuente Open Sans en UILabel s al seleccionar Custom en el menu desplegable de fuente. La fuente se representa correctamente en la vista previa en Interface Builder, pero luego, cuando lanzo la aplicación en el dispositivo, la fuente no se aplica a las tags.

Intenté configurar la fuente mediante progtwigción, pero tampoco funcionó. Y no recibo ninguna advertencia ni error.

¿Qué olvidé para poder usar una fuente personalizada?

El comportamiento ha sido el mismo en un iPad Air con iOS7 y en un iPhone 6 con iOS8.

Solo asegúrese de que todas las fonts estén realmente disponibles en el package, intente imprimir todas las fonts y verifique si está usando el nombre correcto. Puede hacer esto muy fácilmente con el siguiente código en el método didFinishLaunchingWithOptions del delegado de la aplicación:

 for (NSString *familyName in [UIFont familyNames]) { NSLog(@"Family Name : %@", familyName); for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) { NSLog(@"\tFont Name : %@", fontName); } } 

o en Swift:

 if let familyNames = UIFont.familyNames() as? [String] { for familyName in familyNames { println("Family : " + familyName) if let fontNames = UIFont.fontNamesForFamilyName(familyName) as? [String] { for fontName in fontNames { println("\tFont : " + fontName) } } } } 

El código rápido no es el más eficiente, pero debería funcionar para comprobar si las fonts existen en el package.

Asegúrese de haber agregado las fonts en su Info.plist. Hay una input llamada "Fuentes proporcionadas por la aplicación" que debe contener todos los files de fonts que desee usar.

Vaya a Objetivo -> Fases de compilation -> Copiar packages de packages, allí comtesting si el file de fuente está allí, si no presionas el button más y lo agrega manualmente. A veces, los files de fuente no se agregan automáticamente a los resources de package.

Espero que esto ayude.

¿Agregaste la fuente a tu info.plist exactamente cómo se escribe la fuente con la inclusión de su extensión de file? Por ejemplo, OpenSans.ttf es diferente de opensans.ttf o solo opensans. Para estar 100% seguro del nombre del file, haga clic derecho en su file de fuente, click Obtener información y luego verifique la descripción del Nombre completo. Para agregar la fuente programáticamente, deje la extensión del file desactivada. Por ejemplo,

 myLabel.font = [UIFont fontWithName:@"OpenSans" size:32]; 

Lo que funcionó para mí fue cuando agregué la fuente para marcar el "Agregar a los objectives" grueso frente al nombre de mi aplicación.

Vea el ejemplo de la image aquí:

introduzca la descripción de la imagen aquí