UILabelのsizeToFitがうまく調整してくれない場合

UILabelのsizeToFitが、すごく便利と思えたので、いろんな箇所で使ってみようとしたけど、うまく動かないケースがある。いわゆる”…”が表示されて、設定したテキストが全て表示されない。
試行錯誤して、解決策を見つけたのでメモ。(もしかすると、自分のケースでのみ有効な解決策かも)

うまく動かないケース

いろいろとデバッグしてみた感触としては、sizeToFitは、横幅については、小さくする方向でのみ動作する気がする。
なので、小さくする方向で期待するならば、問題なく動作する。ただ、一度小さくしたUILabelを大きくしてくれることを期待すると、動作しない。
自分のケースでは、横幅をキープして、縦方向に伸ばす方向に調整しようとするように見えましたので、期待とは違いました。

解決策

なので、sizeToFitする前に、一時的に幅を広げておいて、その後sizeToFitを呼び出すことで、期待する調整が行われる。

自分のユースケースの状況
自分のユースケースは、以下の通り。(何が影響しているか完全には把握していないので、関係しそうなものだけ列挙)

  • numberOfLineは、0に設定
  • 特に制約はつけていない

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です