【SwiftUI】Text の複数行設定

Text が表示領域に収まらない場合行末は「…」となってしまいます。今回は複数行設定について UILabel との違いを含めて確認して見ましょう。

Text の複数行設定

SwiftUI の Text で複数行設定する場合は .lineLimit プロパティを使います。

.lineLimit(number: Int?)

デフォルトは1行設定です。最大3行とする場合は以下の様にします。

Text("HogehogeFugafuga.HogehogeFugafuga.HogehogeFugafuga.").lineLimit(3)

無制限とする場合

文字数が不定で全文表示したい時など無制限としたい場合は以下の様に nil を渡します。引数がInt型ではなくInt?型(nil許容のOptional型)であるのでこの様な指定が出来ます。

Text(変数などの不定の文字列).lineLimit(nil)

UILabel では「label.numberOfLines = 0」とすれば良かったのですが、SwiftUI で 0 を渡しても1行設定になってしまいますので注意してください。

最後に画面サンプルを貼っておきます。上から、1行設定・2行設定・3行設定・無制限・無制限としてあります。もちろん文字の大きさも考慮して改行されるようになっています。

Text のその他の設定については下記の記事でまとめていますのでご参照ください。