【问题标题】:Using a custom font in storyboard in XCode 6在 XCode 6 的情节提要中使用自定义字体
【发布时间】: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


【解决方案1】:

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

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

我认为您在界面生成器中设置按钮的方式没有问题,因此它可能是一个错误或字体名称的一些技术问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2014-12-04
    • 2014-10-07
    • 1970-01-01
    • 2015-11-10
    • 2015-06-13
    相关资源
    最近更新 更多