我在此主题上阅读了大多数问题和答案,它们似乎都适用于自定义字体,而不是系统字体。
IM使用接口构建器,并在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 9开始没有名为Lithos Pro
的字体。如果您也找不到UIFont.familyNames
中的字体,这意味着您使用的字体是自定义字体,未提供由OS。另一种可能性是您写了整个字体名称,而不仅仅是姓氏。尝试删除单词 Regular
。
如果您使用自定义字体并将字体文件添加到项目中,则需要在Info.plist中添加一些内容才能使其正常工作。在info.plist文件中创建一个新的KVP。该密钥称为"应用程序提供的字体"或类似的内容。只需向下滚动列表,就应该找到它。之后,Xcode将自动创建一个数组作为密钥的值。然后,只需将您的字体文件名与扩展名一起添加为数组中唯一的项目。