web-dev-qa-db-ja.com

動的な高さの複数のUILabelを持つUIView

2つのUILabelを含むカスタムUIViewを作成しています。各UILabelは動的な高さを持っています。動的な高さの制約を設定できません。 (私は自動レイアウトとiOSの新機能です)。

両方のUILabelは上部と下部から相互に接続され、スーパービューに水平に配置されます。また、UILabelのいずれかのコンテンツを変更すると、UIViewおよびUILabelが必要に応じてサイズ変更されません。

提案してください。現在の制約のスクリーンショットを添付しています。

11
cheeseRoot

demoを要件に応じて作成しました。以下のリンクからダウンロードしてください。

IViewおよびUILabelの自動サイズ変更

ステップバイステップガイド:-

ステップ1:-制約をUIViewに設定します

1)リーディング2)トップ3)トレーリング(メインビューから)

enter image description here

ステップ2:-制約をラベル1に設定します

1)リーディング2)トップ3)トレーリング(スーパービューから)

enter image description here

ステップ3:-ラベル2に制約を設定します

1)リーディング2)トップ3)トレーリング(スーパービューから)

enter image description here

ステップ4:-最もトリッキーなUIViewからUILabelにボトムを与えます。

Xcode 10以降の場合-配置制約セクションからUIViewとラベルを選択し、下エッジ制約を選択します。

enter image description here

enter image description here

ステップ5:-(オプション)UIButtonに制約を設定します

1)リーディング2)ボトム3)トレーリング4)固定高さ(メインビューから)

enter image description here

出力:-

enter image description here

注:-ラベルプロパティで行数= 0を設定していることを確認してください。

enter image description here

Edit1:-BottomConstrain(> =)でサイズを増やしたい場合は、以下の画像を確認してください。

enter image description here

この情報が、UILabelの高さによるUIViewの自動サイズ変更とテキストによるUILabelの自動サイズ変更を理解するのに十分であることを願っています。

68
Badal Shah
  1. インターフェイスビルダーで、両方のラベルのLinesプロパティを0に設定します。
  2. ラベルまたはuiviewの高さに制約がないことを確認してください。
  3. Uiviewに特定のサイズを強制する制約がないことを確認してください。たとえば、スーパービューの上部から特定の距離のuiviewに制約があり、スーパービューの下部から特定の距離の別の制約がある場合、機能しません。
  4. コード内のラベルのテキストを変更すると、高さが自動的に調整されます。
1
Kashif