iOS: 自動レイアウトでの複数行の UILabel 質問する

iOS: 自動レイアウトでの複数行の UILabel 質問する

Auto Layout で非常に基本的なレイアウト動作を実現しようとして、問題が発生しています。IB でのビュー コントローラーは次のようになります。

ここに画像の説明を入力してください

一番上のラベルはタイトル ラベルです。何行になるかはわかりません。タイトル ラベルにはすべてのテキスト行を表示する必要があります。また、他の 2 つのラベルと小さな画像は、タイトルの高さに関係なく、タイトルの真下にレイアウトする必要があります。ラベルと小さな画像の間に垂直方向の間隔制約を設定し、タイトル ラベルとそのスーパービューの間に上部の間隔制約を設定し、小さな画像とそのスーパービューの間に下部の間隔制約を設定しました。白い UIView には高さ制約がないため、サブビューを収容するために垂直方向に伸びる必要があります。タイトル ラベルの行数は 0 に設定しました。

文字列に必要な行数に合わせてタイトル ラベルのサイズを変更するにはどうすればよいですか? 私の理解では、Auto Layout を使用しているため、setFrame メソッドを使用できません。また、他のビューをタイトル ラベルの下に配置する必要があるため (制約があるため)、Auto Layout を使用する必要があります。

どうすればこれを実現できるでしょうか?

ベストアンサー1

-setPreferredMaxLayoutWidthを使用するUILabelと、残りは自動レイアウトで処理されます。

[label setPreferredMaxLayoutWidth:200.0];

を参照してくださいUILabel の preferredMaxLayoutWidth に関するドキュメント

アップデート:

heightストーリーボードの制約を に設定するだけでGreater than or equal to、PreferredMaxLayoutWidth を設定する必要はありません。

おすすめ記事