2016-08-22 15 views
1

私は必要に応じて拡大縮小できるカスタムスクエアビューを持っています。私のカスタムビューは、コンテンツをレンダリングするためにdrawRectを単にオーバーライドします。Xcode autolayout:四角形に最適

含まれているビューは長方形ですが、正方形ではありません。アスペクト比は、デバイスの向きや種類によって変わります。コンテナ内で最大限のスペースを占める一方、1:1のアスペクト比を保持するように、カスタムビューに合わせる必要があります。

可能であれば、コードではなくIBで制約を設定したいと思います。私は、次の制約している:

  • 垂直容器に
  • 水平センタリングを中心には、コンテナ内に
  • アスペクト比(1:1)
  • コンテンツモードは
を埋めるためにスケールに設定します

カスタムビューをコンテナに合わせるためにさまざまなことを試しました。たとえば、IBレイアウトエラーを表示します。

  • 幅< =コンテナの幅
  • 身長< =コンテナの高さ

コンテナが垂直または水平である場合、私は知らないので、私は...、

を同じ大きさのいずれかを設定することはできません。

これは基本的な作業のようですが、これを把握することはできません。四角形に四角形を入れるにはどうすればよいですか?

答えて

1

あなたが既に持っている制約を維持し、新しい制約を追加しますが、アスペクト比の制約

  • 幅と高さ< =スーパーサイズよりも優先順位が低いとスーパーに等しい

    • 幅と高さを
  • 0

    最初の3の制約が正しい。、他の人を削除し、

      を設定
    • 先頭または末尾とnewely追加制約を選択し、今0

      にそれらが> =(以上)する今

      をスーパーする

    • 上部または下部

    制約ビューに幅や高さの制約を与える必要があります。これは、スクロールビューの場合と同じようにサブビューを同じにしたり、320に等しい幅を表示したり、それ以上の大きさにしたりする必要があります。

    関連する問題