我想在我的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中按钮的字体:
它在XCode中的故事板中的样子:
它在模拟器中的外观:
我现在不知道如何继续。有很多指南,它们的最新版本各不相同,但我没有看到任何我错过的东西。我错过了什么吗?有没有办法调试这个问题?
答案 0 :(得分:1)
我建议在代码中抓取@IBOutlet
对该按钮的引用并打印出其UIFont
。如果字体不正确,您可能需要以编程方式设置它:
yourLabel.font = UIFont(name: "icomoon", size: 20)
我认为在界面构建器中设置按钮的方式没有问题,因此可能是字体名称的错误或技术问题。
我想到的一个想法是,典型的字体名称采用FontFamily-FontName
(例如HelveticaNeue-Regular
)的形式,而您的字体名称则不是这样。也许这与它有关。