Acabo de actualizar mi iPod touch a iOS 7.0.3 y "HelveticaNeue-Italic" parece haber desaparecido. Cuando consulto por teléfono con:
[UIFont fontNamesForFamilyName:@"Helvetica Neue"]
Obtengo los siguientes fontNames (13):
HelveticaNeue-BoldItalic,
HelveticaNeue-Light,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-CondensedBold,
HelveticaNeue-MediumItalic,
HelveticaNeue-Thin,
HelveticaNeue-Medium,
HelveticaNeue-ThinItalic,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-Bold,
HelveticaNeue,
HelveticaNeue-CondensedBlack
Cuando hago la misma consulta ejecutándose en el simulador, obtengo (14):
HelveticaNeue-BoldItalic,
HelveticaNeue-Light,
**HelveticaNeue-Italic,**
HelveticaNeue-UltraLightItalic,
HelveticaNeue-CondensedBold,
HelveticaNeue-MediumItalic,
HelveticaNeue-Thin,
HelveticaNeue-Medium,
HelveticaNeue-Thin_Italic,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-Bold,
HelveticaNeue,
HelveticaNeue-CondensedBlack
¿Alguien más vio esto?
---- Nueva información ----
Volví al video de la WWDC 2013 "Uso de fuentes con el kit de texto" y la parte interesante comienza a las 12:22. El presentador habla de "MetaFonts" en OS X como ejemplo. Lo que dice es que la fuente debajo de llamadas como:
+ (NSFont *)messageFontOfSize:(CGFloat)fontSize
no se garantiza que devuelvan la misma fuente subyacente en todas las versiones o incluso en diferentes usos. Su ejemplo fue Lucinda Grande. No parecía estar diciendo que el uso de "HelveticaNeue-Italic" pudiera pasar de una versión a otra.
Así que construí un experimento en iOS 7. Creé mi fuente con el siguiente código:
UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithName:@"Helvetica Neue" size:16.0];
UIFontDescriptor *symbolicFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];
UIFont *fontWithDescriptor = [UIFont fontWithDescriptor:symbolicFontDescriptor size:16.0];
Obtuve un UIFont válido para fontWithDescriptor y cuando consulté la fuente para fontName con:
[fontWithDescriptor fontName]
Regresé...
HelveticaNeue-Italic
¿¿¿Imagínate???
Entonces, una posible respuesta a 7.0.3 parece ser el código anterior.
---- Más retoques ----
Aunque la solución funcionó anteriormente, no creo que sea formalmente correcta. He cambiado a la siguiente solución
UIFontDescriptor *fontDescriptor = [[UIFontDescriptor alloc] init];
UIFontDescriptor *fontDescriptorForHelveticaNeue = [fontDescriptor fontDescriptorWithFamily:@"Helvetica Neue"];
UIFontDescriptor *symbolicFontDescriptor = [fontDescriptorForHelveticaNeue fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];
textFont = [UIFont fontWithDescriptor:symbolicFontDescriptor size:textFontPointSize];
Esto parece hacer todas las cosas correctas. Probé el enfoque anterior con otra familia de fuentes y pareció confundirse con fontName y fontFamily. ¡Espero que esto ayude!