#はじめに
Swift の UILabel には折り返しや省略表示を指定するための lineBreakMode というプロパティが用意されています。指定できるモードの中に折り返し位置を単語区切りにする byWordWrapping と、文字区切りにする byCharWrapping があるのですが、byWordWrapping を指定しても日本語の文章は単語区切りで表示されません。それではbyCharWrapping を指定しても byWordWrapping を指定しても違いはないのか、気になったので調べてみました。
#環境
Xcode Version 12.0
Swift 5.3
#byCharWrapping
lineBreakMode に byCharWrapping を指定して表示したところ画像のようになりました。
わかりやすいようにUILabel の背景を黄色にしています。
#byWordWrapping
次に byWordWrapping を指定して同じ文章を表示してみました。
byWordWrapping を指定すると行頭に句読点や括弧の終わり、小文字、伸ばし棒などがこないように調整されるようです。こちらのほうが読みやすいですね。
#まとめ
byCharWrapping と byWordWrapping のどちらを指定しても良いという場合は禁則処理が考慮されている byWordWrapping を使用するのが良いようです。
■参考サイト
https://developer.apple.com/documentation/uikit/nslinebreakmode