自定义字体未显示在字体系列列表中
Posted
技术标签:
【中文标题】自定义字体未显示在字体系列列表中【英文标题】:Custom Fonts not showing on font family list 【发布时间】:2020-06-10 14:16:10 【问题描述】:我在 macOS Catalina 上使用 Swift 5 和 Xcode 11.4.1。
直到今天,我在应用自定义字体时都没有遇到任何问题。 我正在尝试将自定义字体应用于名为“textLabel”的标签。 让我先告诉你我是如何尝试的,然后请告诉我哪里出了问题。
使用情节提要 我想将名为“myFont.ttf”的自定义字体用于名为“textLabel”的标签。 我使用这个选项在 Xcode 中删除了字体文件。 我去了 info.plist 让 Xcode 知道我提供了自定义字体。 我打开 main.storyboard,进入属性检查器并选择标签的字体作为自定义样式。 我在字体系列列表中找不到“myFont”字体。所以我尝试了另一种方式,以编程方式。
通过使用代码-
在数字 3 之前与上述过程相同。
我在 viewController.swift 文件中编写了这段代码。
import UIKit
class ViewController: UIViewController
@IBOutlet weak var textLabel: UILabel!
override func viewDidLoad()
super.viewDidLoad()
textLabel.font = UIFont(name: "myFont.ttf", size: 22)
-
我运行了应用程序,它只显示正常的系统字体。
我一遍又一遍地尝试了这两种方法(即使我创建了 5 次新文件来测试这个字体),我也尝试了各种字体,但同样的事情发生了。
【问题讨论】:
【参考方案1】:问题在于您在声明 UIFont(name: "myFont.ttf", size: 22)
中为 UIFont
提供的名称。您不应该提供名称myFont
,而是应该提供字体的实际名称,例如:Avalon
。您可以通过列出您拥有的整个字体列表来获取字体。像这样:
for family: String in UIFont.familyNames
print("\(family)")
for names: String in UIFont.fontNames(forFamilyName: family)
print("== \(names)")
现在检查控制台输出,查找新字体的“系列”和“字体”名称。将显示为与您的新字体系列相对应的“字体”名称(可能有多个“字体”与您的新字体“系列”相关联)传递给let myNewFont = UIFont(name: "font_name_from_console_output", size: 22)
,您应该可以开展业务了!
【讨论】:
感谢您的回答,感谢您,我现在知道如何检查我的字体系列了!我试过你的,甚至寻求苹果支持的帮助,但我最终格式化了我的设备,最后它工作了。我想我的mac书是问题所在。无论如何,非常感谢! :) 很高兴听到你把它修好了。永远不会猜到这一点。快乐编码:)以上是关于自定义字体未显示在字体系列列表中的主要内容,如果未能解决你的问题,请参考以下文章