在 Interface builder 中看到自定义字体,但在 iOS 项目的代码中看不到

Custom font seen in Interface builder but not in code in iOS project

我将名为 "Quicksand_Dash.otf"、"Quicksand-Bold.otf" 的自定义字体添加到 iOS 项目中。我可以在 Interface builder 中看到它,但是当我在代码中列出字体时看不到它。

我如何列出字体;

for family in UIFont.familyNames {

        let sName: String = family as String
        print("family: \(sName)")

        for name in UIFont.fontNames(forFamilyName: sName) {
            print("name: \(name as String)")
        }
 }

我可能检查了堆栈溢出中的每个答案,但我认为我遇到了不同的问题。

How To Use Custom Fonts in iPhone SDK

Custom Fonts Not Working

编辑:如果我在情节提要中添加标签并将其字体设为 Quicksand。字体也在代码中列出。但是,我不想用户故事板。我在代码中创建控制器。

EDIT2:如果我删除情节提要中的标签。又开始不见了。

这与我面临的问题相同,但我已经应用了 post 中的解决方案;

在应用程序中使用自定义字体

  • 将字体添加到您的项目文件夹
  • 将其添加到 plist 文件中
  • 检查它是否添加到复制包资源中
  • 将字体添加到您的字体簿

查看下面的 link 以获得更多参考。

你会踢自己的...

在您的 plist 信息文件中,您有:

`Quicksand-Dash.otf`

但是您添加的文件名为:

`Quicksand_Dash.otf`

下划线不是连字符

重命名您的文件,或编辑 plist 条目,您将看到您的字体。

调试控制台输出:

family: Quicksand
name: Quicksand-BoldItalic
name: QuicksandDash-Regular
name: Quicksand-Bold

这是一个简单的 single-view 项目,对我来说效果很好——在模拟器和设备上。 (我 没有 将字体添加到 OS X,只添加到我的项目中):

https://github.com/DonMag/Quicksand

仅供设置参考:

参考@Donmag 的回答。我从 GitHub 下载他的示例项目并将字体从他的项目复制到我的项目,然后将 "Fonts provided by application" 区域从 plist 复制到我的 plist。有趣的是,它被复制为 "UIAppFonts"。但是,它现在开始工作了。

我也坚持这个问题,给出的解决方案对我不起作用。在我的例子中,ttf 文件的 "Target Membership" 块未选中。所以当我点击它时,字体系列列表中列出了受人尊敬的 ttf 字体。

编码愉快!!