自動レイアウト - ビューの高さをスーパービューの高さの半分に相対的にする 質問する

自動レイアウト - ビューの高さをスーパービューの高さの半分に相対的にする 質問する

最近、自動レイアウトに取り組んでいますが、非常に些細な問題の例に行き詰まっています。画面の上部に配置し、画面の高さの半分を占めるビューがあります。自動レイアウト前は簡単です。所定の位置に固定し、スーパービューのサイズが変更されたときに垂直方向に拡張するように指示するだけです。

今のところ、どうやってやるのか全くわかりません。これを設定しようとすると、次のようになります:

自動レイアウトブルース

下部のスペース制約は「284 に等しい」に設定されていますが、これは絶対的な制約であり、iPhone4 レイアウトに変更すると、画面の下部に 284 ポイントのスペースが保持され、ビューが縮小されて画面の半分のサイズではなくなるため、私にとってはまったく役に立ちません。また、その制約を他のビューの高さの何分の 1 かに等しくなるように設定する方法はありません。

しばらく苦労した後、これを行うために思いついた唯一の方法は、このビューの下に別のビューを導入し、それらの高さを均等に固定し、それらを互いの上下に配置してから、2 番目 (下) のビューを非表示に設定することです。これは少し見苦しいようです。

何か明らかなことを見逃しているのでしょうか?

ベストアンサー1

任意のビュー間の正確な比率を設定できるストーリーボード ソリューション:

高さの等価制約を設定する

今:

制約の乗数を編集

利益!!!

結果

PS また、この方法は異なるネストレベルのビューでも機能し、(明らかに)幅にも適用できることにも注意してください。

PPS: 制約の「最初の項目と 2 番目の項目を逆にする」か、逆の乗数 (たとえば、0.5 ではなく 2) を設定すると役立つ場合があります (ただし、ビューが互いにどのように関連しているかを理解していない場合は、これらの方法は役に立ちません)。

おすすめ記事