2019年1月2日水曜日

SKLabelNodeの文字を縁取りに

NSMutableAttributedStringクラスを使う。

以下のコードの内、strokeWidthが縁取りの太さになるのだが、正の数だと縁取りだけで中が塗られない袋文字になる。負の値だと縁取り+中の塗りつぶしになる。
strokeColorが縁取りの色、foregroundColorは中の塗りつぶし色。

let borderText = NSMutableAttributedString(string: "縁取る文字")
borderText.addAttributes([NSAttributedString.Key.strokeWidth : -2.0,
NSAttributedString.Key.strokeColor : UIColor.black,
NSAttributedString.Key.foregroundColor : fontColor,
NSAttributedString.Key.font : UIFont.systemFont(ofSize: 64.0)],
range: NSMakeRange(0, borderText.length))
labelNode.attributedText = borderText

注意点

同時にSKLabelNode.textに普通にcolorを設定すると、そちらが優先されたりされなかったり、挙動がおかしくなる場合がありよくわからない。
要するに両方同時に設定しないほうが無難。

また、SKLabelNodeの.textと、NSMutableAttributedStringのstringは別物になる。

0 件のコメント:

コメントを投稿