私はIBを介して作業しており、レイアウトのほぼ最後まで引き伸ばされたUILabelを持っています。Lines=2 に設定しました。最大行数は 2 であるためです。ただし、1 行の長さしかない場合は、垂直方向に上揃えにしたいと考えています。
IB のラベル設定:
Lines:2
Line breaks: Word wrap
コードでは、viewDidLoad メソッドで UILabel のテキストを設定します。ただし、機能の一部として、ある時点でテキストを変更する必要があります。これは私のコードです:
[_main_lbl1 setText:[myUI MAIN_TITLE]]; //Always only 1 line
[_main_lblsub1 setText:[myUI SUB_TITLE]]; //May be 1 or 2 lines
[_main_lblsub1 sizeToFit]; //Causes vertical alignment (I believe)
テキストを変更して sizeToFit を再実行するたびに、テキストの折り返しが完全にめちゃくちゃになります。IB で設定されているように UILabel のほぼ最後に到達する代わりに、場合によってはテキストが半分強の距離で折り返され、場合によってはまったく折り返されません。
IB のレイアウトのイメージ:
シミュレーターでの結果のラベルの画像:
最初のラベルでは問題なく動作しているようですが、2 番目のラベルはまったく折り返されていません。
UILabel テキストを変更するときにテキストの折り返しを維持するために何かしなければならないことはありますか? 私が見逃しているものは他にありますか?
注:詳細と写真を含めるために質問を更新しました。
ありがとう