LoginSignup
0
1

More than 3 years have passed since last update.

公式ドキュメントのAuto Layout記事にあるStackViewの例を作成してみた!

Posted at

はじめに

https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/LayoutUsingStackViews.html#//apple_ref/doc/uid/TP40010853-CH11-SW12
この公式ドキュメントの例を元に、画像のようなレイアウト作成しました。
Stack ViewContent Hugging PriorityContent Compression Resistance Priorityの使い方や機能についてまとめてみようと思います。
スクリーンショット 2020-11-24 20.47.28.png

Stack Viewの使い方

いくつかやり方があるが、公式ドキュメントに載っていたやり方が分かりやすかったのでそのやり方を説明します。
LabeltextFieldStack Viewでまとめるには、
スクリーンショット 2020-11-24 20.57.39.png
二つを選択して
スクリーンショット 2020-11-24 20.58.53.png
[Editor]>[Embed in]>[Stack View]を選択!
スクリーンショット 2020-11-24 21.01.02.png
水平方向のStack Viewができました!
垂直に並べて同じ作業すれば垂直方向のStack Viewができます。
この作業を繰り返してレイアウトを作成していきます。

完成したもの

最初にも載せたこれです。
スクリーンショット 2020-11-24 20.47.28.png

Content Hugging PriorityとContent Compression Resistance Priority

この完成したレイアウトのContent Hugging PriorityContent Compression Resistance Priorityは以下の通りです。
スクリーンショット 2020-11-24 21.05.02.png

Content Hugging Priority

Stack View内でパーツを配置して、Stack Viewの方が水平または垂直方向に対して大きく、余白が発生する場合の余白を埋めるためのものです。このHuggingの値が小さい方が空白を埋めるために広がるイメージです。
以下の画像はLabelとtextFieldの間が空いていてどちらかに余白を埋めさせるとします。
textFieldのContent Hugging PriorityをLabelより低くして、Stack Viewの左右の幅を決めると、画像のようにtextFieldが余白を埋めてくれます。
スクリーンショット 2020-11-24 21.33.36.png
LabelのHorizontalのContent Hugging Priorityの値は251。(画面一番右の下の方)
スクリーンショット 2020-11-24 21.36.55.png
textFieldのContent Hugging Priorityの値は250
スクリーンショット 2020-11-24 21.39.14.png

Content Compression Resistance Priority

こちらはパーツがStack Viewからはみ出るときに、優先して表示する方の値を大きくします。
labelのContent Compression Resistance Priorityを751、textFieldを750にすると、labelがまず優先的に表示されてからtextFieldが表示されます。
スクリーンショット 2020-11-25 5.44.30.png
逆に、labelを750、textFieldを751にするとtextFieldが優先的に表示され、今回のようにtextFieldの内容が長ければlabelを隠してしまいます。
公式ドキュメントで作成したレイアウトで、labelのResistanceが750でtextFieldが749になっている理由もこれと同じでしょう。
スクリーンショット 2020-11-25 5.41.36.png

最後に

この辺りの知識は使いこなすことができれば、レイアウトの作成がやりやすくなり思うように動かせると思うので、しっかり使いこなしたいですね。

参考サイト

https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/LayoutUsingStackViews.html#//apple_ref/doc/uid/TP40010853-CH11-SW12
https://blog.officekoma.co.jp/2019/02/stackview-content-hugging.html

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1