Xcode
Storyboard

アスペクト比を維持してView内いっぱいに拡大するViewをstoryboardだけで作成する

なんのこっちゃ?

図で説明すると、以下のような感じ。
hoge.png
白Viewのsubviewとして黄色Viewが配置されているものとします。
そして...

  • 黄色Viewが白Viewの中央
  • 黄色Viewは常に指定のアスペクト比を維持(図では4:3)
  • 黄色Viewが、白Viewの長辺・短辺どちらか最初に接する方までいっぱいに広がる

...そんなViewが作りたかったのです。

(Androidアプリの経験がある方なら「ImageViewでandroid:scaleType="fitCenter"を指定した感じ」と言えば伝わるでしょうか)

storyboardでの設定

黄色Viewに付与した制約は、以下のようになります。
storyboard.png

ポイントは以下の通り。

  • Equal Widthの制約とEqual Heightの制約両方に、=0≦0の2種類の制約をつける
  • Equal Widthの制約とEqual Heightの制約を全て優先度を下げる(図ではhighに設定)

これだけです。
参考になれば幸いです。