UIStackViewを使って、Viewを等間隔で配置しようとしたく、Distributiuon = .equalSpacingに設定していましたが、
viewが思った通りのレイアウトで表示されませんでした、、
え、、stackViewって自動でレイアウト調整してくれるから便利なんじゃないの??
と困惑しました笑
StackViewのsubViewも幅や高さは明示的に制約をつけなければならない場合がある!
公式に書いてあるとおり、Distributionには5つの種類があります。
UIStack View .Distribution
- .fill
- .fillEqually
- .fillProportionally
- .equalSpacing
- .equalCentering
5つのDistributionの詳しい説明は以下の記事を参照ください。めちゃくちゃわかりやすいです!
UIStackViewの5つのdistributionを理解する
この5つのうち、私が使いたかった.equalSpacingはStackViewのSubViewに制約を明示的につけなければならなかったようです!
subview.heightAnchor.constraint(equalToConstant:100).isActive=true
こんな感じでsubViewに制約をつけてあげたら解決しました!!