如何(或是否)在 iOS 应用程序中使用 Skia(或任何未知)字体
How (or if) to use the Skia (or any unknown) font in an iOS app
我正在设计一个 iOS (SpriteKit) 应用程序,如果我添加一个 SKLabelNode
到现场。但是,当我 运行 模拟器中的应用程序出现替代字体时。
据我所知,此字体带有 Xcode。我当然没有买它,尽管它可以作为另一个应用程序的一部分出现。
使用像 Chalkduster 这样的字体似乎可以正常工作,不需要额外的工作。
所以我想知道这种字体是否需要任何特殊操作才能被识别(例如,它是否像自定义字体)或者是否存在其他问题。
此外,如果这不是标准 Xcode 字体,我在商业应用程序中使用它会不会遇到麻烦?
编辑:如果答案可以说明 (a) 这种字体在他们的 Xcode 版本中是否可见以及 (b) 它是否有效,我们将不胜感激。
EDIT2:好的,再研究一下。我下载并安装了一个真正的(免费)自定义字体,它现在出现在字体选择器中,但它实际上并没有被我的应用程序渲染。
看来 Xcode 显示了系统上安装的所有字体,无论您的 app/target 设备是否可以访问它们。但是,您只能按照以下答案中描述的过程使用它。这可能是一件好事,因为它会阻止您意外使用您已获得但可能没有许可证的字体。但是有点烦人的是,字体选择器中提供了您不能使用的字体。
关于你的最后一个问题,是的。如果该字体未作为 iOS 字体的一部分提供,您将必须获得其许可(有些是免费的,但有些不是,因此请确保安全起见)。
检查 this Skia 的许可页面
Skia 不是 iOS 中包含的字体的一部分。您可以从 iosfonts.com or wptechonlogy.com
获取所有预装 iOS 字体的列表
您可以通过执行以下操作列出设备上所有已安装的字体:
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);
}
(source for above code)
要安装字体,您可以使用 iOS Font Maker 之类的应用程序或使用代码自行安装。涉及的步骤是:
- 将您的字体包含在您的 Xcode 项目中。
- 确保它们包含在目标中。
- 检查您的字体是否作为资源包含在您的包中。
- 在您的应用程序 plist 中包含您的 iOS 自定义字体。
- 使用 UIFont 并指定字体名称。
Codewithchris.com 有关于如何添加自定义字体的分步教程。
So I am still wondering why I can see it in the Xcode font picker
Xcode 在您的计算机上 运行 。一旦您选择 Custom 作为 Interface Builder 中界面对象(例如 UILabel 或您发现的 SKLabelNode)的字体弹出选项,Family 弹出窗口将显示您计算机上的所有字体。
我正在设计一个 iOS (SpriteKit) 应用程序,如果我添加一个 SKLabelNode
到现场。但是,当我 运行 模拟器中的应用程序出现替代字体时。
据我所知,此字体带有 Xcode。我当然没有买它,尽管它可以作为另一个应用程序的一部分出现。
使用像 Chalkduster 这样的字体似乎可以正常工作,不需要额外的工作。
所以我想知道这种字体是否需要任何特殊操作才能被识别(例如,它是否像自定义字体)或者是否存在其他问题。
此外,如果这不是标准 Xcode 字体,我在商业应用程序中使用它会不会遇到麻烦?
编辑:如果答案可以说明 (a) 这种字体在他们的 Xcode 版本中是否可见以及 (b) 它是否有效,我们将不胜感激。
EDIT2:好的,再研究一下。我下载并安装了一个真正的(免费)自定义字体,它现在出现在字体选择器中,但它实际上并没有被我的应用程序渲染。
看来 Xcode 显示了系统上安装的所有字体,无论您的 app/target 设备是否可以访问它们。但是,您只能按照以下答案中描述的过程使用它。这可能是一件好事,因为它会阻止您意外使用您已获得但可能没有许可证的字体。但是有点烦人的是,字体选择器中提供了您不能使用的字体。
关于你的最后一个问题,是的。如果该字体未作为 iOS 字体的一部分提供,您将必须获得其许可(有些是免费的,但有些不是,因此请确保安全起见)。
检查 this Skia 的许可页面
Skia 不是 iOS 中包含的字体的一部分。您可以从 iosfonts.com or wptechonlogy.com
获取所有预装 iOS 字体的列表您可以通过执行以下操作列出设备上所有已安装的字体:
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);
}
(source for above code)
要安装字体,您可以使用 iOS Font Maker 之类的应用程序或使用代码自行安装。涉及的步骤是:
- 将您的字体包含在您的 Xcode 项目中。
- 确保它们包含在目标中。
- 检查您的字体是否作为资源包含在您的包中。
- 在您的应用程序 plist 中包含您的 iOS 自定义字体。
- 使用 UIFont 并指定字体名称。
Codewithchris.com 有关于如何添加自定义字体的分步教程。
So I am still wondering why I can see it in the Xcode font picker
Xcode 在您的计算机上 运行 。一旦您选择 Custom 作为 Interface Builder 中界面对象(例如 UILabel 或您发现的 SKLabelNode)的字体弹出选项,Family 弹出窗口将显示您计算机上的所有字体。