刚刚将我的iPod touch升级到iOS 7.0.3并且"HelveticaNeue-Italic"似乎已经消失了.当我在手机上查询时:
[UIFont fontNamesForFamilyName:@"Helvetica Neue"]
Run Code Online (Sandbox Code Playgroud)
我得到以下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
Run Code Online (Sandbox Code Playgroud)
当我在模拟器中运行相同的查询时,我得到(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
Run Code Online (Sandbox Code Playgroud)
其他人都看到了吗?
- - 新的消息 - -
我回到WWDC 2013视频"使用带有文本工具包的字体",有趣的部分从12:22开始.演示者以OS X中的"MetaFonts"为例进行讨论.他说的是调用的字体如:
+ (NSFont *)messageFontOfSize:(CGFloat)fontSize
Run Code Online (Sandbox Code Playgroud)
不保证在版本甚至不同用途中返回相同的底层字体.他的榜样是Lucinda Grande.他似乎没有说使用"HelveticaNeue-Italic"可以从版本到版本.
所以我在iOS 7中构建了一个实验.我使用以下代码创建了我的字体:
UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithName:@"Helvetica Neue" size:16.0];
UIFontDescriptor *symbolicFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];
UIFont *fontWithDescriptor = [UIFont fontWithDescriptor:symbolicFontDescriptor size:16.0];
Run Code Online (Sandbox Code Playgroud)
我确实为fontWithDescriptor获得了一个有效的UIFont,当我查询fontName的字体时:
[fontWithDescriptor fontName]
Run Code Online (Sandbox Code Playgroud)
我回来了...
HelveticaNeue-Italic
Run Code Online (Sandbox Code Playgroud)
去搞清楚???
所以7.0.3的可能答案似乎是上面的代码.
----进一步调整----
虽然解决方案在上面工作,但我认为它不是正式的.我已切换到以下解决方案
UIFontDescriptor *fontDescriptor …Run Code Online (Sandbox Code Playgroud)