酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

UITextViewでNSAttributedStringを表示すると設定値が反映されない

UITextViewでNSAttributedStringを表示すると、あらかじめ設定していた値が利用されず謎の表示になる。ポケカのデッキ構築アプリを作っているんだけど、v1.1.3で雑に入れた対応がことごとくバグ出してて、余裕ないときに書いたコードはいかんなぁと思った次第です。

f:id:ch3cooh393:20191026124715p:plain

v1.1.3で、カード情報をNSAttritebudStringで表示させるようにしました。

if #available(iOS 13.0, *) {
   cardDescriptionTextView.textColor = UIColor.label
} else {
    cardDescriptionTextView.textColor = UIColor.common_black
}
cardDescriptionTextView.text = "ここにカードの詳細が表示されるニャン"
cardDescriptionTextView.attributedText = card.displayAttributedDescription

これではダメだったようで、前述したように中華フォント&黒色textColorになってしまっていました。

NSAttributedStringを作る側で attributesでフォントと色を指定することがきちんと表示されました。

f:id:ch3cooh393:20191026124721p:plain