1. ホーム
  2. アイオス

[解決済み】コンテナビュー内の複数のビューを均等に配置する

2022-04-16 16:16:33

質問

オートレイアウトのせいで、生活が苦しくなっています。理論上は、乗り換えたら本当に便利になるはずだったのですが、私はいつもそれと戦っているようです。

デモプロジェクトを作成して、助けを求めています。ビューのサイズを変更するたびに、ビュー間のスペースを均等に増減させる方法をご存知の方はいらっしゃいますか?

ここに3つのラベルがあります(手動で縦に均等に間隔をあけています)。

私が欲しいのは、回転させたときに、間隔(ビューサイズではない)を均等にリサイズすることです。デフォルトでは、上部と下部のビューが中央に向かって縮小します。

解決方法は?

そこで、私のアプローチでは、これをインターフェースビルダーで実現できるようにしました。何をするかというと、高さを均等に合わせるように設定した「スペーサービュー」を作るのです。それから、ラベルに上下の制約を追加します(スクリーンショットを参照)。

具体的には、'Spacer View 1'のトップ制約をsuperviewに、高さ制約を1000より低い優先度で、他のすべての'Spacer View'とHeight Equalsに設定しています。'Spacer View 4'には、superviewに対するボトムスペース制約があります。各ラベルは、その最も近い'spacer view'に対して、それぞれの上下の制約を持ちます。

注:ラベルの上下の空間制約をスーパービューに追加しないように注意してください;「スペースビュー」への制約だけです。これは、上部と下部の制約がそれぞれ「スペースビュー1」と「スペーサービュー4」上にあるため、満足できるものになります。

Duh 1: 私は自分のビューを複製し、それがうまくいくことがわかるように単にランドスケープモードにしただけです。

ダウト2:「スペーサー・ビュー」は透明でもよかったのでは?

ダウト3:この方法は、水平方向に適用できる。