【发布时间】:2015-09-03 15:18:45
【问题描述】:
我想在我的 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,并验证它是否已在其中列出。 p>
XCode 中按钮的字体:
它在 XCode 中的故事板中的外观:
它在模拟器中的样子:
我现在不知道如何继续。有很多指南的更新程度各不相同,但我并没有真正看到我错过的任何内容。我错过了什么吗?有什么办法可以调试这个问题?
【问题讨论】:
-
尝试使用 IBOutlet 在代码中获取对按钮的引用并打印出其 UIFont。如果字体不正确,那么您可能需要以编程方式设置它。我认为您在 Interface Builder 中设置按钮和字体的方式没有明显问题。
-
打印出它的 UIFont 的好建议!原来字体是系统字体。在
viewDidLoad中添加self.bsButton.titleLabel?.font = UIFont(name: "icomoon", size: 65)并不能解决问题,但是如果我稍后调用相同的代码(通过在按钮的回调函数中进行测试),它可以工作(!)。嗯…… -
作为答案发布。
标签: ios xcode fonts storyboard