调整文本大小以适合具有固定宽度的SKLabelNode

时间:2016-12-24 17:54:35

标签: sprite-kit swift2 sklabelnode

Spritekit的新用户并尝试修正SKLabelNode的宽度,然后相应地调整文字的字体以适应节点。

一直在查看docs,但似乎无法找到合适的内容,例如UILabel函数:

A UILabel.adjustsFontSizeToFitWidth = true

由于

1 个答案:

答案 0 :(得分:3)

这是一个很好的功能,我发现了一段时间,但我无法记住确切的位置

    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)
}

这会调整标签的字体大小以准确适应宽度,但您可能需要更改该功能,以便在所有方面添加一些额外的填充。