8

スプライト キット内にラベルを作成し、初期サイズを設定しています。アプリはローカライズされるため、他の言語では英語版よりも単語が長く表示される場合があります。したがって、ラベルのフォントサイズを特定の幅(この場合はボタン)に収まるように調整するにはどうすればよいですか。

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

1 に答える 1

7

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

これが他の質問へのリンクです。

于 2015-08-24T14:47:30.897 に答える