【Swift】【AutoLayout】Viewを縦横に並べる方法

この記事では、SwiftのStoryboard上で、Viewを縦や横に並べる方法を紹介します。

スマホ向けアプリを作っていると、「画像を縦に並べたい!」や「ボタンを横に並べたい!」と思ったりすることがありますよね。

この記事は、そんな疑問に対して、Storyboardの画像付きで、解説しています。

この記事を読むと、こんな形を作れるようになります。

なお、綺麗に並べたViewを、全体の半分の高さにしたい!など、Viewの倍率も指定したい場合には、是非、こちらの記事も合わせてご覧になって下さい。

目次

Viewを縦に並べる方法

まずは、Viewを縦に並べる方法を、3段階で解説します。

今回は、以下の手順で、縦に2つViewを並べてみます。

  1. Vertical Stack Viewを配置する
  2. Vertical Stack Viewの中に、Viewを配置する
  3. Viewを縦に並べる

Vertical Stack Viewを配置する

Viewを縦に並べるには、Vertical Stack Viewを使います。

まずは、Viewを縦に並べる準備として、Vertical Stack ViewをStoryboardへ配置しましょう。

STEP
LibraryからVertical Stack Viewを見つける

右上にある「+」アイコン(Library)をクリックします。

Libraryに、vertical stack viewと入力し、Vertical Stack Viewを見つけます。

STEP
Vertical Stack ViewをStoryboard上に配置する

Vertical Stack View を LibraryからStoryboard上にドラッグし、配置します。

配置したら、エディター上で、Vertical Stack Viewに、VStackViewという名前をつけておきましょう。

STEP
Vertical Stack Viewへ制約を設定する

Vertical Stack Viewの配置を決めるため、制約をつけます。今回は、画面いっぱいに引き伸ばす制約をつけましょう。

VStackViewを選択した状態で、画面右下の、Add New Constraintsアイコンをクリックして、制約を設定する画面を開きます。

上下左右すべてスペース0の制約をつけ、Add 4 Constraintsをクリックし、確定させます。

制約は、Vertical Stack ViewとSafe Areaの間のスペースとして設定します。プルダウンから、どこに対するスペースか、確認できますので、間違えないようにしましょう。

Vertical Stack Viewの中に、Viewを配置する

配置したVertical Stack Viewの中に、Viewを配置していきましょう。

縦に並べるViewを2つ配置します。

STEP
1つ目のViewを配置する

先ほどの手順と同様、Libraryを開き、UIViewと入力します。

UIViewを見つけたら、Storyboardへドラッグし、Vertical Stack Viewに重なるように配置します。

配置したUIViewが、Vertical Stack Viewの中に配置されているか、エディターでも確認をしましょう。

配置したら、エディター上で、UIViewに、View1という名前をつけておきましょう。

また、Attribute Inspectorを開き、UIViewの背景色を赤(System Red Color)にしましょう

STEP
2つ目のViewを配置する

上と同じ手順で、もう一つ、UIViewを配置します。

配置したら、エディター上で、UIViewに、View2という名前をつけましょう。

背景色は青(System Blue Color)にしておきましょう。

この時点ではView2はView1に隠れてしまい、Storyboard上見えないですが、問題ありません。
この次の手順でViewに制約を付けることで、見えるようになります。

Viewを縦に並べる

いよいよViewを縦に並べてみます。

すでに、縦に並べる2つのViewの配置まで完了していますね。ですので、あとは、それぞれのViewへ制約をつけるだけです。

STEP
View1へ制約を設定する

View1へ制約を設定します。

View1は画面の上側になるような制約をつけましょう。

まず、View1を選択し、画面右下の Add New Constraintsアイコンをクリックします。

View1は、Vertical Stack Viewに対して、上・右・左のスペースが0になるように制約を設定します。

このとき、スペースの制約を付ける対象がVStackViewなっているか、必ず確認をしましょう。誤って Safe Area などに対して制約をつけないようにしましょう。

また、View1の高さを 300 と設定し、Add 4 Constraintsをクリックします。

STEP
View2へ制約を設定する

View2へ制約を設定します。

View2は画面の下側になるような制約をつけましょう。

View2を選択し、画面右下の Add New Constrainsアイコンをクリックします。

View2は、Vertical Stack Viewに対して、下・右・左のスペースが0になるように制約を設定します。

今回も、スペースの制約を付ける対象が、VStackViewであることを確認しましょう。

そして、上方向の制約として、View1とのスペースが0になるように、制約を設定します。

あとは、Add 4 Constraintsをクリックして、制約を確定させましょう。

これで、以下のように、Viewを縦に綺麗に並べることができました。

各UIViewの高さを「全体の半々にしたい」や「1:2の比率で配置したい」といったこともありますよね。要素を比率で配置する方法は、以下の記事で紹介していますので、是非こちらも参考にしてください。

Viewを横に並べる方法

次に、Viewを横に並べる方法を、3段階で解説します。

今度は、横に2つViewを並べてみましょう

  • Horizontal Stack Viewを配置する
  • Horizontal Stack Viewの中に、Viewを配置する
  • Viewを横に並べる

見ての通り、先ほどの手順とほとんど同じですね。使用するViewが Vertical Stack View から、Horizontal Stack View へ変わった程度で、実は、必要な手順は、ほとんど変わりありません。

先ほどと全く同じ手順などは、画像を割愛しますので、詳細を忘れてしまった方は、上の手順を振り返るようにしてください。

Horizontal Stack Viewを配置する

Viewを横に並べるには、Horizontal Stack Viewを使います。

まずは、Viewを横に並べる準備として、Horizontal Stack ViewをStoryboardへ配置しましょう。

STEP
LibraryからHorizontal Stack Viewを見つける

Libraryを開き、horizontal stack viewと入力し、Horizontal Stack Viewを見つけます。

STEP
Horizontal Stack ViewをStoryboard上に配置する

Horizontal Stack View を LibraryからStoryboard上にドラッグし、配置します。

配置したら、エディター上で、Horizontal Stack Viewに、HStackViewという名前をつけておきましょう。

STEP
Horizontal Stack Viewへ制約を設定する

Horizontal Stack Viewの配置を決めるため、制約をつけます。今回も、画面いっぱいに引き伸ばす制約をつけましょう。

HStackViewを選択した状態でAdd New Constraintsアイコンをクリックし、Safe Areaに対して、上下左右、すべてスペース0の制約を設定しましょう。Add 4 Constraintsをクリックし、確定させてください。

Horizontal Stack Viewの中に、Viewを配置する

配置したHorizontal Stack Viewの中に、Viewを配置していきましょう。

横に並べるViewを2つ配置します。

STEP
1つ目のViewを配置する

UIViewをStoryboardへドラッグし、Horizontal Stack Viewに重なるように配置しましょう。

配置したら、エディター上で、UIViewに、View1という名前をつけ、背景色を赤(System Red Color)にしましょう。

STEP
2つ目のViewを配置する

上と同じ手順で、もう一つ、UIViewを配置します。

UIViewをStoryboardへドラッグし、Horizontal Stack Viewに重なるように配置しましょう。

配置したら、エディター上で、UIViewに、View2という名前をつけ、背景色を青(System Blue Color)にしましょう。

この時点ではView2はView1に隠れてしまいStoryboard上見えないですが、問題ありません。
この次の手順でViewに制約を付けることで、見えるようになります。

Viewを横に並べる

いよいよViewを横に並べてみます。

すでに、横に並べる2つのViewの配置まで完了していますね。ですので、あとは、それぞれのViewへ制約をつけるだけです。

STEP
View1へ制約を設定する

View1へ制約を設定します。

View1は画面の左側になるような制約をつけましょう。

View1を選択し、Add New Constrainsアイコンをクリック、Horizontal Stack Viewに対して、上・左・下のスペースが0になるように制約を設定します。

繰り返しですが、このとき、スペースの制約を付ける対象がHStackViewになっているか、必ず確認をしましょう。

また、View1の幅を 150 と設定し、Add 4 Constraintsをクリックします。

STEP
View2へ制約を設定する

View2へ制約を設定します。

View2は画面の右側になるような制約をつけましょう。

View2を選択し、Add New Constraintsアイコンをクリック、Horizontal Stack Viewに対して、上・右・下のスペースが0になるように制約を設定します。

そして、左方向の制約として、View1とのスペースが0になるように、制約を設定します。

あとは、Add 4 Constraintsをクリックして、制約を確定させましょう。

これで、以下のように、Viewを横に綺麗に並べることができました。

縦・横を入れ子にして並べる方法

これまでご紹介した内容を応用して、縦と横を入れ子にした形を作ってみましょう。

以下のように、Vertical Stack View と Horizontal Stack View を組み合わせることで、縦横入れ子の形を作ります。

まず縦方向のVertical Stack Viewを並べ、その後、下段のHorizontal Stack Viewを並べる順序で、作ってみましょう。

  • 縦の要素を並べる
  • 横の要素を並べる

縦の要素を並べる

まずは縦方向の要素を並べましょう

Vertical Stack Viewを配置し、その中に、UIViewとHorizontal Stack Viewを配置していきます。

STEP
Vertical Stack Viewを配置する

先ほどと同じ手順で、LibraryからVertical Stack Viewを探し、Storyboard上に配置しましょう。

配置したら、エディター上で、VStackViewという名前にしておきましょう。

STEP
Vertical Stack Viewへ制約を設定する

今回も、画面いっぱいに引き伸ばす制約をつけましょう。

VStackViewを選択し、Add New Constraintsアイコンをクリック、SafeAreaに対して、上下左右、すべてスペース0の制約をつけましょう。Add 4 Constraintsをクリックし、制約を確定させます。

STEP
UIViewとHorizontal Stack Viewを配置する

Vertical Stack Viewの上に、UIViewとHorizontal Stack Viewを配置します。

LibraryからUIViewとHorizontal Stack Viewを探して、Vertical Stack Viewの上に配置しましょう。

配置したら、UIViewはView1と名前をつけ、背景色を赤(System Red Color)にしておきましょう。

また、Horizontal Stack Viewは、HStackViewと名前をつけておきましょう

STEP
UIViewとHorizontal Stack Viewを上下に並べる

配置したUIViewとHorizontal Stack Viewを上下に並べてみましょう。

先ほどの手順を参考に、UIViewを上側に、高さ300で配置します。

またHorizontal Stack Viewを、UIViewの下側に配置します。

これで、UIViewとHorizontal Stack Viewを上下に並べることができました。

横の要素を並べる

続いて、横方向の要素を並べましょう。

上の手順で配置したHorizontal Stack Viewの中に、UIViewを2つ並べるだけです。

これは、以前にすでに、同じ作業をしていますね。

STEP
UIViewを2つ配置する

UIViewをStoryboardへドラッグし、Horizontal Stack Viewに重なるように配置しましょう。

配置したら、エディター上で、UIViewに、View2という名前をつけ、背景色を青(System Blue Color)にしましょう。

同じようにして、もう一つ、UIViewをHorizontal Stack Viewの上に配置しておきましょう。

こちらは、View3と名前をつけ、背景色は緑(System Green Color)にしておきます。

STEP
UIViewに制約をつける

配置したUIViewを左右に並べてみましょう。

先ほどの手順を参考に、View2は左側に幅150で配置します。

また、View3は、View2の右側に配置します。

これで、Viewを縦横に並べることができました。

最後に

今回は、UIViewの配置にフォーカスして説明しました。

ただし、もちろん、UIButtonや、UILabelに対しても、同じようにして縦横に並べることができます。

Storyboard上で、要素を綺麗に並べたいと思った時は、是非参考にしてみて下さい。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次