
備忘録に近いですが、簡潔にまとめます。
この画像のようなものがあったとします。
スクロールすると一番下に登録ボタンがあるようなイメージです。
これらはスクロールビューとスタックビューを使って実装してます。
しかし、iPadで見ると画面が大きいため、スクロールする必要がなく、登録ボタンは中途半端な位置にあります。(一番下に余白ができてしまいます)
スクロールしないような画面が大きい端末で見た時にも、登録ボタンが一番下に来るようにしたい。
これのやり方の例です。
fa-chevron-circle-right現状
上の画像の段階ではこんな感じです。
レイアウトなどは省略します。
この記事が参考になります。同じやり方でやりました。
手順
fa-chevron-circle-rightviewを足す
登録ボタンの親viewとviewの間にxxxViewという調整用のviewを入れました。
現在のheightは0です。このxxxViewに高さを与えることで見た目を調整します。
fa-chevron-circle-rightxxxViewのheightをアウトレットでつなぐ
xxxViewそのものではなく、xxxViewのheightをアウトレットでつなぎます。
そうしないと今回の場合はheightを変更することができません。
fa-chevron-circle-rightコードで与えたい高さを与える
例えば、今回は360を与えてみました。すると、
このようにiPadのような大きい画面でも一番下に来ました。
fa-chevron-circle-rightiPhoneのレイアウトが崩れる
さっきのコードでは今度はiPhoneの方のレイアウトが乱れます。if文などを使って画面が大きい時だけ、与えたい高さを与えるようにすれば解決できると思います。
fa-chevron-circle-right様々な大きさのiPadでも同様の見た目にしたい
1 2 3 4 5 6 7 |
// //スクリーンサイズ取得 let screenSize = UIScreen.main.bounds.size.height //stackViewのサイズ取得 let stackViewSize = stackView.frame.size.height |
スクリーンサイズやスタックビューのサイズを取得し引き算するなどすればできます。