如果它不包含在iOS 5中,我们可以在iOS 6中使用字体吗?

use*_*555 7 xcode fonts objective-c ios5 ios6

我想使用iOS 6中包含的字体"Avenir".这是否意味着运行iOS 5的设备将无法看到该字体?如果是这样,如果"Avenir"在他们的设备上不可用,有没有办法可以使用不同的字体?

mat*_*are 4

您可以选择要在 iOS < 6 中使用的字体,并在必要时进行分配。定义一个这样的宏:

#define SYSTEM_VERSION_LESS_THAN(v)      
       ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的代码中执行以下操作:

NSString *fontName = @"Avenir";

if SYSTEM_VERSION_LESS_THAN(6.0) { 
   fontName = @"ArialMT";
}
Run Code Online (Sandbox Code Playgroud)

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

  • 为什么要费力检查 iOS 版本呢?尝试第一个字体。如果您得到“nil”“UIFont”,则回退到其他字体。这也将使该应用程序更加面向未来。 (9认同)