2016-12-24 9 views
8

Spritekitに新しくして、SKLabelNodeの幅を固定し、それに応じてノード内に収まるようにテキストのフォントを調整しようとします。固定幅のSKLabelNodeに合わせてテキストサイズを調整する

UILabel関数のように、docsを見たことがありますが、適切な何かを見つけるように見えるカント:

UILabel.adjustsFontSizeToFitWidth = true

おかげ

+0

あなたはそれを見つけません:) SKLabelNodeにはそのようなことはありません。あなたができることは、すべてを自分で計算することです。 – Whirlwind

+0

Bummer、痛みを感じる – dancingbush

+0

チェックアウト:http://stackoverflow.com/a/31545212/3402095 – Whirlwind

答えて

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

これは、フォントを調整しますizeを正確に調整することができますが、すべての面に余分な余白を追加するために関数を変更することができます。

+0

多くのありがとう@エイダンので、SKLabelNodeと親のUITextviewディメンションをCGRectとして渡しますか?計画は、UITextFieldを介してユーザー入力を取得し、その文字列を境界内で入力することです。SKLabelNode – dancingbush

関連する問題