【Swift5】NSAttributedString で UILabel の高さを可変にする

何が発信源かわかりませんが、NSAttributedString を使用すると UILabel の高さが可変にならない という記事がちらほら見受けられたので、出来やすよってことを書き記しーます。

開発条件(前提条件)

・Xcode11.5
・Swift5
・Autolaoyut を使用
・UILabel に通常の文字を入力すると、高さが可変になるまでは完成しているとします

コード

さっそく解決するコードを載せます。

以上ッ!笑
コードだけ見ると簡単ですが、ここに辿り着くまでが分かりづれーですよね ( ˘ω˘ 三˘ω˘ )
「NSAttributedString を使うと高さが変わらないのは Apple のバグだ!」って記事も出るくらいなので、本当わかりづらいと思います。笑

NSMutableParagraphStyle で lineBreakMode を設定することが可能で、そこで文字を折り返すようにしています。
これだけで UILabel の高さを可変にすることが可能なので、困っている方はぜひお試しください。

さいごに

UILabel.attributedText も UILabel.text と同じくらい使われると思うので、もう少し使いやすくなってほしいですね。

コメント