代码之家  ›  专栏  ›  技术社区  ›  Emre Önder

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

  •  1
  • Emre Önder  · 技术社区  · 7 年前

    我在iOS项目中添加了一种名为“Quicksand\u Dash.otf”、“Quicksand Bold.otf”的自定义字体。我可以在Interface builder中看到它,但在代码中列出字体时看不到它。

    • “应用程序提供的字体”和相关名称添加到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

    编辑:如果我在情节提要中添加标签并使其字体流沙。字体也列在代码中。然而,我不想使用情节提要。我正在代码中创建控制器。

    编辑2:如果我删除情节提要中的标签。它开始再也看不见了。

    这是我面临的同一个问题,但我已经在那篇文章中应用了解决方案;

    Custom Font only available in Interface Builder

    4 回复  |  直到 7 年前
        1
  •  3
  •   DonMag    7 年前

    你会踢自己的。。。

    在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
  •  3
  •   bittu    6 年前

    我也坚持这个问题,给出的解决方案对我不起作用。在我的例子中,ttf文件的“目标成员资格”块未选中。因此,当我点击它时,受人尊敬的ttf字体列在字体系列列表中。 image attach for reference

    快乐的编码!!

        3
  •  0
  •   Emre Önder    7 年前

    来自@Donmag answer的参考。我从GitHub下载他的示例项目,并将字体从他的项目复制到我的项目,然后将“应用程序提供的字体”区域从plist复制到我的plist。有趣的是,它被复制为“UIAppFonts”。然而,它现在开始起作用了。

    SS

        4
  •  -1
  •   Krishna Maru    7 年前

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

    • 将字体添加到项目文件夹
    • 将其添加到plist文件中
    • 检查其是否已添加到副本捆绑资源中
    • 将字体添加到字体手册

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

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