如果iOS 5中没有包含字体,我们能在iOS 6中使用它吗?

7

我想使用在iOS 6中包含的字体"Avenir"。这是否意味着运行iOS 5的设备无法看到该字体?如果是这样,是否有一种方法可以在设备上找不到"Avenir"时回退到其他字体?

1个回答

4

在 iOS < 6 中,您可以选择所需的字体并进行分配。如果需要,定义如下宏:

#define SYSTEM_VERSION_LESS_THAN(v)      
       ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

然后,您可以在代码中执行以下操作:
NSString *fontName = @"Avenir";

if SYSTEM_VERSION_LESS_THAN(6.0) { 
   fontName = @"ArialMT";
}

您可以在这里找到支持的字体列表:http://iosfonts.com/

9
为什么要检查iOS的版本?尝试使用第一个字体。如果你得到了一个nilUIFont,那就回退到另一个字体。这也会使得应用程序更具未来性。 - rmaddy
使用Storyboards/Interface Builder分配的字体会发生什么?我可以看到Avenir包含在列表中。对于iOS5,有什么想法吗? - Ben Clayton
@Ben Clayton,如果iOS 6.0中有可用的字体,则可以使用该字体;如果在低于iOS 6.0的版本中没有该字体,则会使用系统默认字体Helvetica。 - Pranav Jaiswal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接