Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有Helvetica产生滞后的SKLabelNode_Ios_Swift_Fonts_Sprite Kit_Sklabelnode - Fatal编程技术网

Ios 具有Helvetica产生滞后的SKLabelNode

Ios 具有Helvetica产生滞后的SKLabelNode,ios,swift,fonts,sprite-kit,sklabelnode,Ios,Swift,Fonts,Sprite Kit,Sklabelnode,我花了将近3天的时间才发现我的问题是我将标签字体设置为Helvetica。每次我想更改它的文本都会延迟。所以我的问题是Helvetica和SKLabel节点有什么问题。当我设置它时,我以为它是Helvetica Neue。字体本身没有问题,但它是如何使用的SKLabelNode处理字体使用。问题是,每次访问时,SKLabelNode都会检查/加载字体。要阻止Swift这样做,您应该在开始时创建如下字体: let theFont = UIFont(name: "Helvetica", size:

我花了将近3天的时间才发现我的问题是我将标签字体设置为Helvetica。每次我想更改它的文本都会延迟。所以我的问题是Helvetica和SKLabel节点有什么问题。当我设置它时,我以为它是Helvetica Neue。

字体本身没有问题,但它是如何使用的
SKLabelNode
处理字体使用。问题是,每次访问时,SKLabelNode都会检查/加载字体。要阻止Swift这样做,您应该在开始时创建如下字体:

let theFont = UIFont(name: "Helvetica", size: 17)

//Access the font like that in your label
theFont?.fontName
这里的诀窍是,Swift有一个对您字体的引用,而不必每次都加载新字体。因为当前Swift每次都会检查字体

如果您还没有这样做,您还可以尝试预加载字体:

var yourLabel = SKLabelNode(fontNamed: "Helvetica Neue")

但这只发生在直升机上,不应该是这样。检查解决方案是否可行。现在我知道发生了什么,我有一个打字错误。我讨厌字符串,因为我写了它。这救了我!非常感谢。诀窍是使用fontName创建一个SKLabelNode,该fontName用作将来所有标签的预加载引用。现在的演出非常顺利。