labelで表示している文字の一部分だけのフォントを変えようとしていましたが、うまくいかず、調べて対応しました。
注意:NSFontAttributeNameでUIFontを指定しても全然文字サイズが変わらない場合がある
やりたいこと
labelで表示している文字の一部分だけのフォントを変えたい。
方法
以下のストーリーボードでの設定が大事だった
label
text
Plain / Attributed
ここの設定をAttributedに変えたタイミングで、別の設定が追加された?ため(「wR hR」て表示されているやつ)
実装例
"100 点"という文字列を"100"の部分を赤文字、fontSize:52
で表示させる
let score = "100"
let scoreLength = score.characters.count
let attrText = NSMutableAttributedString(string: score + " 点")
attrText.addAttribute(NSForegroundColorAttributeName,
value: UIColor.redColor(),
range: NSMakeRange(0, scoreLength))
attrText.addAttribute(NSFontAttributeName,
value: UIFont(name: "Helvetica Neue", size: 52.0)!,
range: NSMakeRange(0, scoreLength))
labelhoge.attributedText = attrText
全く同じ状況で、ハマっていた記事がありました。
- SizeClassでハマった話…
コメント