gpt4 book ai didi

iphone - 如何检查字体在 iOS 版本中是否可用?

转载 作者:IT王子 更新时间:2023-10-29 07:36:16 26 4
gpt4 key购买 nike

我目前正在开发一个使用“ChalkboardSE-Regular”字体的应用程序,我的部署目标是 4.0+。此字体在 4.1 中不可用,但在 4.3 中受支持。检查字体是否存在的最佳方法是什么,如果不存在,请在 <4.1 版本的 iOS 上使用另一种受支持的字体。 [UIFont familyName] 返回这些字体“Chalkboard SE”的列表

提前致谢!

T

最佳答案

[UIFont familyName] 支持回到 iPhone OS 2.0(在 2.0 之前,第三方应用程序不允许在 iPhone 或 iPod touch 上使用),所以我会用它来检查是否当前设备上存在字体系列,如果不存在,请为该版本的 iOS 使用合适的后备字体。这是 John Gruber 列出的 2007 年第一代 iPhone 的 iPhone 字体(与当时 Mac OS X 中的字体对比)。我没有全部检查过,但我检查过的 iOS 字体仍在 iOS 5 中:

下面是一个使用 [UIFont familyName] 的例子:

NSLog (@"Font families: %@", [UIFont familyNames]);

这将生成如下列表:

Font families: ( Thonburi, "Snell Roundhand", "Academy Engraved LET", ... et cetera.

一旦知道家族名称,就可以使用 UIFont 类方法 fontNamesForFamilyName 获取家族中所有字体名称的 NSArray。例如:

NSLog (@"Courier New family fonts: %@", [UIFont fontNamesForFamilyName:@"Courier New"]);

这将产生如下列表:

Courier New family fonts: ( CourierNewPSMT, "CourierNewPS-BoldMT", "CourierNewPS-BoldItalicMT", "CourierNewPS-ItalicMT" )

以下示例代码打印当前设备上每个系列中每个字体的列表:

NSArray *fontFamilies = [UIFont familyNames];

for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}

有关更多信息,请查看有关 UIFont 类方法的 iOS 开发人员引用文档 familyNamesfontNamesForFamilyName: .

关于iphone - 如何检查字体在 iOS 版本中是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com