web-dev-qa-db-ja.com

Xcode 6:すべてのデバイスで画像ビューを画面いっぱいにする方法は?自動レイアウトが機能しませんか?

画像ビューとボタンがあります。すべてのデバイスで画像ビューを正しいサイズにする必要があります(押しつぶしたり、引き伸ばしたりしないでください)。さらに重要なことは、画面のサイズにすることです。すべてのデバイスでほぼ同じ場所にボタンを置く必要があります。

Xcode 5に戻ると、この問題を修正する自動レイアウトを覚えていますが、今では機能しません。 https://www.youtube.com/watch?v=G53PuA_TlXk を見て、controlキーを押しながらView Controllerにドラッグし、ビューを水平方向と垂直方向の両方にセンタリングしましたが、取得できません画面のサイズに合わせて拡大縮小します。ビデオはこれに対処していません。

コントロールビューで画像ビューを拡大したままにするときに選択する必要がある特定のオプションはありますか?私は何をすべきか?

44
skyguy

次の2つのことを行う必要があります。

  1. 制約を適切に設定します
  2. 必要なスケーリングのタイプを選択します。

制約の設定:

  1. 画像ビューをドラッグして、ビューのほぼ中央に配置します。
  2. サイズクラスをw Any h Anyに設定します。
  3. ピンアイコンをクリックします |-[] 画面の下部にあります。
  4. 4つのオレンジ色のIビームをすべてオンにします。 4つの定数をゼロに設定します。
  5. マージンへの制約チェックボックスをオフにします。
  6. クリック Add 4 constraints

Add New Constraints

スケーリングの選択:

  1. View Controllerに追加した画像ビューをクリックします。
  2. 右側のAttributes Inspectorで、画像を選択します。
  3. ---(ViewModeAspect Fillに設定します(画面全体を上/下にトリミングするか、必要に応じて左/右)またはアスペクトフィット(画像全体が切り取られずに表示されるようにレターボックス画像)。

Attributes Inspector


作成された制約を表示できます。ドキュメントのアウトラインでは、画像ビューの下に4つの制約が表示されます。

Document Outline

制約をクリックして、右側のAttributes Inspectorに表示します。私が作成した4つを以下に示します。

Leading Edge constraint

Trailing Edge constraint

Top Edge constraint

Bottom Edge constraint

99
vacawama

これは私のために働いたものです:

ビューモード:
アスペクト塗り

画像の制約として:
センターXの位置合わせ:スーパービュー
等しい幅:スーパービュー

の 「等しい幅」 プロパティは、画面のサイズに合わせて画像を拡大縮小するものです。

特定の位置にボタンを配置したい場合は、そこからビューに制約を設定します。検討する主なものは、上部の制約と左右の制約です。そのため、ボタンをその側面に対して配置する場所をビューに伝えています。

お役に立てれば。

12
maledr53

あなたが何を望んでいるのかを「正確に」理解していないが、画像ビューをコントローラにドラッグし、その画像ビューをView Controllerの背景全体に自動的に埋める場合:画像ビューコンポーネントをView Controllerウィンドウにドラッグするだけです。

つまり、View Controllerの周囲に青い境界線が表示されている場合、ドラッグする前に、Image ViewはView Controllerを塗りつぶしません。

ビューコントローラーペインの背景の任意の場所をクリックする必要がありますしたがって、青い境界線が消えます、それだけで、ドラッグしているイメージビューがコントローラーの背景全体を自動的に塗りつぶします。

プレビューを使用して写真がつぶれたり伸びたりしているのを見つけた場合は、[自動レイアウトの問題を解決]メニューに移動して[不足している制約を追加]をクリックします。

0
Teddy mauve