2017-03-01 94 views
1

我已经阅读了大多数关于此主题的所有问题和解答,它们似乎都适用于自定义字体,而不适用于系统字体。系统字体在iOS模拟器中不工作

即时通讯使用接口生成器,并在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) 
+0

'Lithos Pro Regular'不是系统字体。 –

回答

5

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

我检查了iosfonts.com,并且在iOS 9中没有一个名为Lithos Pro的字体。如果在UIFont.familyNames中找不到字体,那意味着您使用的字体是自定义字体,而不是由操作系统提供。另一种可能性是你编写了整个字体名称而不是只有姓氏。尝试删除单词Regular

如果您的使用自定义字体并已将字体文件添加到项目中,则需要在Info.plist中添加一些内容以使其工作。在Info.plist文件中创建一个新的KVP。该键被称为“应用程序提供的字体”或类似的东西。只需向下滚动列表即可找到它。之后,Xcode会自动创建一个数组作为键的值。然后,只需添加扩展名的字体文件名作为数组中的唯一项。

+0

钉在头上!我所缺少的是Info.plist KVP。添加后,它完美的作品。谢谢你,先生! – TheValyreanGroup