web-dev-qa-db-ja.com

iOSはUIImageViewのアスペクト比を維持しますが幅を塗りつぶします

これは、iOS 8およびXCode 6で最初から作成した最初のアプリです。そのため、これらのスペーシングの問題は私を殺しました。以下では、正方形にしたいUIImageViewがありますが、画面の幅全体に拡大したいと思います。これには幅と高さの値があるため、アプリを実行すると画面が広くなります。左上隅に小さなボックスが表示されます。私は考えられるあらゆる方法で制約をいじくり回してみましたが、それを制約すると、画像がフルサイズに拡大し、画面から出て行くすべてを覆います。 1:1のアスペクト比を伸ばして維持するにはどうすればよいですか?

enter image description here

[〜#〜] edit [〜#〜]わかりました、私は間違っていました。調整されないのはUIImageViewではなく、ビュー全体です。 enter image description here

13
Jhorra

両側と上部をスーパービューに拘束します。たとえば、width/heightを320以上にすることもできますが、これは役立つ場合があります。ただし、UIを横向きにすると、幅いっぱいに表示され、同時に画面全体に表示される間、画像が正方形のままになることはありません。

編集:「下からこれほど遠い」と伝えない限り、画像は(境界線で)画面の境界を超えてはなりません。

EDIT-2:背景ビューの制約をスーパービューに設定します。すべて4。

2

画像表示コンテンツモードを使用します。

[self.imageView setContentMode:UIViewContentModeScaleAspectFill];

フレームの幅も画面いっぱいにしたいようです。次の制約を使用します。

  • 上、左、右への距離は0です。
  • 高さは幅の制約と同じです。
  • 画像比率1:1制約。

次に、画像ビューのサイズを適切に変更する必要があります。

9
Enrico Susatyo

プログラムでフレームを設定し、制約をまったく使用しません。そうするために

  1. ImageViewをView Controllerのアウトレットにリンクする
  2. 2つの値が等しくなるようにフレームを設定します

    frame.size.width/frame.size.height

1
Cody Weaver