答えて

2

これは、AutoLayoutを使用して実行できます。

子ビューのサイズと位置を定義する制約があることを確認してください。次に、親ビューの垂直コンテンツのハギングと圧縮抵抗の優先順位を必要な値に設定します。これは、子ビューの高さと位置に基づいて親の高さを定義します。

子ビューの内容によっては、垂直コンテンツのハギングと圧縮抵抗の優先順位も変更することができます。たとえば、numberOfLines0に設定されたUILabelは、そのコンテンツに基づいて自動的に拡大することができるため、コンテンツを垂直に抱き締め、垂直方向の圧縮に耐えて親ビューのサイズを変更する必要があります。

この画像は、インスペクタパネルで縦方向の抱き上げと圧縮抵抗の優先順位を設定した親(白)のビューです。親ビューには、幅、x位置、およびy位置に制約が設定されていますが、高さは設定されていません。子ビューの高さと位置に基づいて高さを推測することができます(次の画像を参照)。

enter image description here

この画像は、それぞれの子ビューの制約を示しています。これらのビューの垂直方向の抱き合わせおよび圧縮抵抗の優先順位はではなく、が変更されていることに注意してください。これらのビューのそれぞれには、x位置とy位置の制約がありますが、そのすべてに幅と高さの制約があるわけではありません。ラベルやスイッチなどのビューは、コンテンツに基づいてサイズの制約を自動的に推測することができます。子ビューのすべてに垂直位置の制約を設定しないと、AutoLayoutはそれぞれに必要なスペースの量を認識しないため、親ビューの高さを知ることはできません。

enter image description here

+0

ありがとうございます。以下のシナリオで画像や一連の指示でこれを行う方法を説明することはできません。ビュー(親)があり、1つのスイッチと2つのラベルと1つのボタン別の後に。 –

+0

十分なポイントが得られたら、私はupvoteを受け取ります –

+0

抵抗と抱擁についてもっと詳しく説明できればそれもいいでしょう –

1

1 - あなたは、コンテナを見ると制約を追加します。高さや底部の間隔を設定したり、優先度を低く設定しないでください(例999)。

2コンテナにアイテムや物を追加して制約を追加する。必要条件をすべて追加し、底部のスペースを内側に追加してください。

これは、コンテナビューの高さを定義します。

enter image description here

enter image description here

PD約Content Hugging/Compression and Priorityを忘れてください。彼らは便利ですが、ここでは使用しません。彼らはちょうど抵抗力を大きくしたり小さくしたりしました。