系统字体在 iOS 模拟器中不工作

System font not working in iOS Simulator

我已经阅读了此处关于此主题的大部分问题和答案,它们似乎都适用于自定义字体,而不适用于系统字体。

我正在使用 Interface builder 并在 SpriteKit 场景上有一个 SKLabelNode,我将字体更改为 'Lithos Pro'。它在 IB 中显示正确,但在模拟器中 运行 时显示通用字体。我还以编程方式向场景添加了一个 UITextField,试图使用同样不起作用的字体。

据我所知,这是作为 NSFont 包的一部分包含的,但只是为了确认我将 TTF 文件添加到项目中并将它们包含在我的目标资源中。还是不行。

想法?

nameField = UITextField(frame: CGRect(x: view.center.x - 150,y:view.center.y - 25,width: 300, height: 50))
nameField.font = UIFont(name: "Lithos Pro Regular", size: 25)  //I've tried 'Lithos Pro, LithosPro, and Lithos Pro Regular'
nameField.textAlignment = .center
nameField.borderStyle = UITextBorderStyle.roundedRect
nameField.autocorrectionType = UITextAutocorrectionType.no
nameField.keyboardType = UIKeyboardType.default
nameField.returnKeyType = UIReturnKeyType.done
nameField.clearButtonMode = UITextFieldViewMode.whileEditing;
nameField.contentVerticalAlignment = UIControlContentVerticalAlignment.center
view.addSubview(nameField)

要查看 iOS 中所有可用的系统字体,请转到 iosfonts.com。另一种方法是打印 UIFont.familyNames.

我检查了 iosfonts.com 并且从 iOS 开始没有名为 Lithos Pro 的字体 9. 如果您在 UIFont.familyNames 中也找不到字体,这意味着您使用的字体是自定义字体,不是 OS 提供的。另一种可能性是您写了整个字体名称,而不仅仅是姓氏。尝试删除单词 Regular.

如果您正在 使用自定义字体并已将字体文件添加到项目中,则需要在Info.plist 中添加一些内容才能使其正常工作。在 Info.plist 文件中创建一个新的 KVP。密钥称为 "Fonts provided by application" 或类似名称。只需向下滚动列表,您就会找到它。之后,Xcode 将自动创建一个数组作为键的值。然后只需添加您的字体文件名,并将扩展名作为数组中的唯一项。