在“界面”构建器中看到的自定义字体,但在iOS项目

时间:2018-04-09 10:41:13

标签: ios swift xcode fonts uifont

我在iOS项目中添加了名为“Quicksand_Dash.otf”,“Quicksand-Bold.otf”的自定义字体。我可以在“界面”构建器中看到它,但在代码中列出字体时看不到。

  • “应用程序提供的字体”和相关名称已添加到plist文件中。

  • 我检查了字体文件是否在复制包资源中。

Copy Bundle Resources

Ss 2

ss 3

我如何列出字体;

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:如果我在故事板中删除标签。它开始没有再见了。

这是我面临的同样问题,但我已经在该帖子中应用了解决方案;

Custom Font only available in Interface Builder

4 个答案:

答案 0 :(得分:3)

我也坚持这个问题,并且给出的解决方案对我不起作用。在我的情况下,ttf文件的“ Target Membership”块已取消选中。因此,当我单击它时,字体家族列表中列出了受人尊敬的ttf字体。image attach for reference

快乐编码!

答案 1 :(得分:2)

你要自己踢......

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

`Quicksand-Dash.otf`

但您添加的文件名为:

`Quicksand_Dash.otf`

下划线不是连字符

重命名文件或修改plist条目,您就会看到自己的字体。

调试控制台输出:

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

这是一个简单的单视图项目,对我来说很适合 - 在模拟器和设备上。 (我 将字体添加到OS X,仅添加到我的项目中):

https://github.com/DonMag/Quicksand

仅供设置参考:

enter image description here

enter image description here

答案 2 :(得分:0)

参考@Donmag回答。我从GitHub下载他的示例项目并将其项目中的字体复制到我的项目中然后复制"应用程序提供的字体"从plist到我的plist的区域。有趣的是,它复制为" UIAppFonts"。但是,它现在开始起作用了。

SS

答案 3 :(得分:-1)

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

  • 将字体添加到项目文件夹
  • 将其添加到plist文件
  • 检查是否在副本包资源中添加了
  • 为字体书添加字体

请查看以下链接以获取更多参考。

https://stackoverflow.com/a/28843547/9332509