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 件のコメント:
コメントを投稿