UILabelのsizeToFitが、すごく便利と思えたので、いろんな箇所で使ってみようとしたけど、うまく動かないケースがある。いわゆる”…”が表示されて、設定したテキストが全て表示されない。
試行錯誤して、解決策を見つけたのでメモ。(もしかすると、自分のケースでのみ有効な解決策かも)
Sponsor Link
うまく動かないケース
いろいろとデバッグしてみた感触としては、sizeToFitは、横幅については、小さくする方向でのみ動作する気がする。
なので、小さくする方向で期待するならば、問題なく動作する。ただ、一度小さくしたUILabelを大きくしてくれることを期待すると、動作しない。
自分のケースでは、横幅をキープして、縦方向に伸ばす方向に調整しようとするように見えましたので、期待とは違いました。
解決策
なので、sizeToFitする前に、一時的に幅を広げておいて、その後sizeToFitを呼び出すことで、期待する調整が行われる。
自分のユースケースの状況
自分のユースケースは、以下の通り。(何が影響しているか完全には把握していないので、関係しそうなものだけ列挙)
- numberOfLineは、0に設定
- 特に制約はつけていない
Sponsor Link