web-dev-qa-db-ja.com

自動レイアウトを使用して画面を1/3ビューと2/3ビューに分割する

画面をパーセンテージで分割する方法はありますか(等しくないパーセンテージ)、画面を1/3と2/3の2つの部分に分割する必要があります。等しい部分に分割する方法は知っていますが、等しくない部分に分割する方法はわかりません。

ありがとう

33
ilan

Xcode contraints

ビューとスーパービューの間に1つのビューに乗数2:3を、もう1つのビューに1:3を使用して、「等しい幅」制約を作成します。写真をご覧ください。他の方向に分割する場合は、「等しい高さ」。

57
Stefan

手順:

  1. 2つのUIView objects on viewcontroller
  2. 左ビューをsuperviewの左、上、および下に固定します
  3. superviewの右、上、下の右ビュー。
  4. 2つのビュー(左と右)間の水平間隔を固定します。間隔が必要ない場合は、定数がゼロであることを確認してください。
  5. レフトビューとスーパービューを選択し、幅を等しく設定します(忍耐を保ちます)。次に、サイズインスペクターに移動し、左側のビューが選択された状態で幅を均等に編集します。ここで、乗数を0.33に設定します(%幅が設定されます)。

enter image description here

結果を見る:

enter image description here

25
user3693546

ストーリーボードと自動レイアウトを使用すると、非常に簡単です。画面を垂直に分割する必要があると思います(ただし、水平方向も同じトリックです)。

したがって、単一のView Controllerを使用して、2つのビューをドラッグ&ドロップし、それらを上下にアタッチして設定します。 view 1の場合:

ビュー2

ここで、制約を設定する必要があります等しい高さメインビューのビュー1とビュー2の同じ。その後、これらの制約設定を乗数として値(0と1の間)で編集できます。 。制約をダブルクリックします。

比率に必要な値を設定します(これらの制約の合計を1として維持するか、ここに「2:3」と他のビューに「1:3」を入れるだけです):

これが結果です:

これがあなたが必要とするものであることを願っています、もっと詳細が必要なら教えてください!

14

ただし、1つのビューのEqual Widthsを1に制約するなど、2つのサイズではなく1つのポイントを制約する場合は、受け入れられた答えのようにhorizontal center制約を使用できます。画面上の/ 3または2/3のポイントは、スペース内のポイントをサイズに制限できないため機能しません。

ただし、view1xibで画面の全幅になる場合、たとえばhorizontal centerポイントを使用すると、それに制限できますビューのtrailingエッジ、およびビューを画面の幅の1/3または2/3の中央に配置する場合は、乗数をそれぞれ1:3または2:3に設定します。

1
shoe