调整 SKLabelNode 字体大小以适应?

Resize a SKLabelNode font size to fit?

我正在 sprite kit 中创建标签并设置初始大小。由于该应用程序要进行本地化,因此其他语言的单词可能比其英文版本更长。因此,如何调整标签的字体大小以适应特定宽度,在本例中为按钮。

myLabel = SKLabelNode(fontNamed: "Arial")
myLabel.text = "Drag this label"
myLabel.fontSize = 20

由于@InvalidMemory 的评论和@mike663 的回答,我能够解决这个问题。基本上,您按包含标签的矩形的比例缩放标签。

func adjustLabelFontSizeToFitRect(labelNode:SKLabelNode, rect:CGRect) {

// Determine the font scaling factor that should let the label text fit in the given rectangle.
let scalingFactor = min(rect.width / labelNode.frame.width, rect.height / labelNode.frame.height)

// Change the fontSize.
labelNode.fontSize *= scalingFactor

// Optionally move the SKLabelNode to the center of the rectangle.
labelNode.position = CGPoint(x: rect.midX, y: rect.midY - labelNode.frame.height / 2.0)
}

这里是 link 到 other question