スプライト キット内にラベルを作成し、初期サイズを設定しています。アプリはローカライズされるため、他の言語では英語版よりも単語が長く表示される場合があります。したがって、ラベルのフォントサイズを特定の幅(この場合はボタン)に収まるように調整するにはどうすればよいですか。
myLabel = SKLabelNode(fontNamed: "Arial")
myLabel.text = "Drag this label"
myLabel.fontSize = 20
スプライト キット内にラベルを作成し、初期サイズを設定しています。アプリはローカライズされるため、他の言語では英語版よりも単語が長く表示される場合があります。したがって、ラベルのフォントサイズを特定の幅(この場合はボタン)に収まるように調整するにはどうすればよいですか。
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)
}
これが他の質問へのリンクです。