🦀

SwiftUIでTextを省略しないようにしたい

2022/01/29に公開約1,800字

SwiftUIでTextを省略しないようにしたい。そのあたりを忘れるのでまとめておく。

lineLimitを使ってみる

Text("hogehogehogehogehogegehogehogehogehogehogehogegehogehogehogehogehogehogegehoge")
                .frame(width: 100, height: 100)
                .lineLimit(nil)


.lineLimitは表示行数を減らす役割みたい。

https://developer.apple.com/documentation/swiftui/text/linelimit(_:)

lineLimit(_:)を指定しても行数を増やして全体を綺麗に表示できるわけではない。
逆にlineLimit(2)と指定するとこのように行数が減って、表示行数を減らしてくれる。

ただ、今回のケースではlineLimitだとうまくいかない。

fixedSize()を使う

省略したくないときにはfixedSize()を使うといいらしい。

https://developer.apple.com/documentation/swiftui/view/fixedsize()

そうすると綺麗に表示することができるとのこと。

horizontalをtrue

Text("hogehogehogehogehogegehogehogehogehogehogehogegehogehogehogehogehogehogegehoge")
                .fixedSize(horizontal: true, vertical: false)
                .frame(width: 100, height: 100)
                .border(Color.red, width: 1)

verticalをfalse

Text("hogehogehogehogehogegehogehogehogehogehogehogegehogehogehogehogehogehogegehoge")
                .fixedSize(horizontal: false, vertical: true)
                .frame(width: 100, height: 100)
                .border(Color.red, width: 1)

もし.fixedSize(horizontal: true, vertical: true)だと.fixedSize(horizontal: true, vertical: false)にした時と同じ挙動になりました。

今回自分は横方向に許可したかったのでverticalをtrueにして期待通りの描写を得られたので良かったです。

参考

https://qiita.com/Riscait/items/4c6d7f243524502b8ccd
https://stackoverflow.com/questions/56482955/adding-unlimited-lines-in-a-text-swiftui

Discussion

ログインするとコメントできます