ios - iOS 7 中的自定义字体

标签 ios iphone fonts

我正在开发一款游戏,我想在我的应用中使用自定义字体。如果这很重要,我正在使用 SpriteKit。我试过使用这个 https://github.com/deni2s/IBCustomFonts但我无法使用这种字体 http://www.fontspace.com/freaky-fonts/emulogic

我已经尝试了各种方法,并且我已经在应用程序的 info.plist 上注册了字体...有人知道发生了什么吗?

最佳答案

首先,我假设 SpriteKit 没有任何区别。

  1. 您需要将 .otf 或 .ttf 格式的字体复制到您的项目中。例如在支持文件中。
  2. 您需要编辑.plist 文件。将 “应用程序提供的字体” 键添加到您的 plist 中,并在 Item 0 中复制您复制到带有扩展名的支持文件的字体的确切文件名。例如:“JosefinSansStd-Light_0.otf”
  3. 确保您导入到应用中的字体被打包到应用本身中。通过选择您的Target,然后选择Build Phases,然后选择Copy Bundle Resources来做到这一点。如果您在那里没有看到您的字体,请将其从支持文件中拖出。

最后,您希望在应用程序启动时列出所有字体,只是为了查看您的字体的可用名称。您将使用这一小段代码来做到这一点:

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);
}

在打印结果中搜索您的字体,例如,我搜索“Josefin”,我会看到实际字体名称是“JosefinSansStd-Light”。之后,您只需通过以下方式使用该字体:

UIFont *customFont = [UIFont fontWithName:@"JosefinSansStd-Light" size:20];

在 iOS8 中你 add your fonts直接到项目,它们在界面构建器中可见。 修改您的代码以解决此问题,但以编程方式为 iOS7 设置字体并在 xCode6 界面构建器中选择它。附言。 xCode6 中的界面生成器为您提供了正确的字体名称,您可以将其复制粘贴到下面的代码中。

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

 if(SYSTEM_VERSION_LESS_THAN(@"8.0"))
    {
        UIFont *customFont = [UIFont fontWithName:@"OpenSans-Light" size:32];
        self.registerLabel.font = customFont;  
    }

希望这有帮助,干杯。

关于ios - iOS 7 中的自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737788/

相关文章:

ios - 仅当显示导航 Controller 的最顶层页面时才使 UINavigationBar 透明?

objective-c - 如何配置 RestKit errorMapping 来接受更复杂的响应?

html - Font Face 不适用于 Internet Explorer 10.. 为什么?

css - 为什么使用字母 "w"和字体系列 :arial and font-size:11px? 的额外空间

ios - EKEvent 不保存 EKAlarm 但仅在某些设备上没有错误

ios - 我更新到 Xcode 8 beta 6,但出现了非常奇怪的错误

ios - 从父级到子级的 Swift Pass 事件

iphone - 扭曲 UIView 的一部分

iphone - 如何从 UITableViewCell 中删除背景图像?

windows - 直写 : CreateFontFaceFromHDC() failed