在XCode 6中使用故事板中的自定义字体

时间:2015-06-18 06:08:26

标签: ios xcode fonts storyboard

我想在我的iOS 8 Swift项目中使用图标字体(到目前为止只有一个图标)。我首先将字体添加到我的项目(文件列表中的Add Files to “MyProject” - 然后将其添加到我的目标中)。然后我查找角色的代码点,即U + E600,并在故事板中插入U + E600作为按钮的标题。立即成功 - 按钮现在在我的故事板中有一个漂亮的退格图标。

然而,当我在模拟器中运行我的应用程序时,它只是以方形图标显示臭名昭着的问号。

然后我将以下代码添加到我的视图控制器中,以查看字体是否“真正添加”:

let fontFamilyNames = UIFont.familyNames()
for familyName in fontFamilyNames {
    println("Font Family Name = [\(familyName)]")
    let names = UIFont.fontNamesForFamilyName(familyName as! String)
    println("Font Names = [\(names)]")
}

果然,我的字体icomoon在同名的字体系列中显示为单个字体。

然后我打开Info.plist,发现我可能仍然需要手动添加字体文件并添加icomoon.ttf(文件名正确)作为Fonts provided by application中的第一个也是唯一一个项目。重新运行应用程序。还是一个问号。在我的iPhone 6上运行应用程序 - 行为相同。

为了验证该文件是否包含在捆绑包中,我打开了目标 Build Phases 下的 Copy bundle resourced ,并验证它是否已列在那里。

XCode中按钮的字体:

enter image description here

它在XCode中的故事板中的样子:

enter image description here

它在模拟器中的外观:

enter image description here

我现在不知道如何继续。有很多指南,它们的最新版本各不相同,但我没有看到任何我错过的东西。我错过了什么吗?有没有办法调试这个问题?

1 个答案:

答案 0 :(得分:1)

我建议在代码中抓取@IBOutlet对该按钮的引用并打印出其UIFont。如果字体不正确,您可能需要以编程方式设置它:

yourLabel.font = UIFont(name: "icomoon", size: 20)

我认为在界面构建器中设置按钮的方式没有问题,因此可能是字体名称的错误或技术问题。

我想到的一个想法是,典型的字体名称采用FontFamily-FontName(例如HelveticaNeue-Regular)的形式,而您的字体名称则不是这样。也许这与它有关。