SizeClassとAutoLayoutを使用して画面サイズに応じて画面内パーツの拡大・縮小の行い方
お世話になっております。
現在SizeClassとAutoLayoutを使ってユニバーサルアプリのレイアウトを行っています。
以下の条件でiPadの画面サイズによってパーツの比率はそのままに変化させたいのですが、
iPadの縦画面に合わせると横画面にした際に下側が画面外に出てしまい思ったように表示できません。
- iPadの縦横画面両方に対応
- DeploymentTargetは9.0
- 画面内に横4×縦4のパーツを配置
- パーツのサイズは全て同じ
- パーツサイズの比率は保つ(横2:縦1くらい)
- 4×4の集合体で見た場合、常に中央に表示
- 4×4の集合体で見た場合、LeadingとTrailingは40以下にならないようにする
- 一番上側にあるパーツのTopは40固定。
- 一番下側にあるパーツのBottomは55以下にならないようにする
- パーツ毎の間隔は横が11縦が55で固定
イメージ的には画面のサイズに合わせて拡大・縮小を行うだけなのでぱぱっと実現できるかと思いましたが見事にはまっています・・・
以下が制約の内容なのですが、考え方が根本的に違うのでしょうか?
- Viewを追加しその上にパーツを配置。(以下5つは追加したViewに対する制約)
・Align Center X to : SuperView
・Leading Space to : SuperView >= 40
・Trailing Space to : SuperView >= 40
・Top Space to : TopLayout Guide Equal 55
・Bottom Space to : Bottom Layout Guide >= 55 - どれか1パーツに対してAspect Retio設定
- 全パーツに対しequal widthとequal heightを設定
- 縦横の間隔を設定
- 外側にあるパーツをViewに張り付くように間隔0に設定
こう考えてレイアウトは行っていったほうがいいなどの考え方がありましたらそれも教えていただきたいです。
また画面のレイアウトは全てStoryBoardで行おうと思いましたが、コードでの制御も考えています。
こういう場合はコードで制御した方が良い。というのもありましたら合わせて教えていただきたいです。
質問が多くなってしまい申し訳ありませんが、
どなたかわかる方がいましたら宜しくお願い致します。