2017-05-04 4 views
1

Swift 3で書かれたiOSアプリケーションでは、下の図に示すように、UIStackViewにはそれぞれ2個、UIStackViewにはそれぞれ2個、UIStackViewには2個のUIStackViewがあります。 :絵でUIStackViewのUIImageのスケールイメージは、iOSアプリケーションの画面サイズに合わせて

enter image description here

あなたは私が画像に作られた部門を見ることができます。

画像が画面から消えてしまって、画像が切り取られることがあるため、ユーザーが完全な画像を見ることができない場合も、この問題を見ることができます。

すべての画像は、画像セットの「2倍」サイズのAssets.xcassetsです。

アトリビュートインスペクタのMain.storyboardでは、4つの画像すべてに対してコンテンツモードを「塗りつぶす」に変更しました。

imagesStackView.contentMode = UIViewContentMode.scaleAspectFit 

私はこれを修正して表示するために何ができる:

phoneCallImage.contentMode = UIViewContentMode.scaleAspectFit 
sendEmailImage.contentMode = UIViewContentMode.scaleAspectFit 
sendSmsImage.contentMode = UIViewContentMode.scaleAspectFit 
openFacebookImage.contentMode = UIViewContentMode.scaleAspectFit 

は私もフルUIStackView(写真のイメージスタックビュー)とそれを実行しようとしました。私はまた、コードにすることをしませんでしたそれを切り取ることなく完全な画像?

+0

私は外stackviewがビュー内に収まる必要があります..あなたはすべての制約を追加していないと思います。制約内のエラーをクリックすると、何が起きているのかを知ることができます。 – Thahir

+0

外側のスタックビューの先頭と末尾の制約を設定すると問題を解決できると思います – Thahir

答えて

1

個々のイメージと含まれているスタックビューの制約を設定する必要があります。

画像ごとに、スクリーンサイズに比例するように、乗数0.5(親幅の50%)の最上部のスタックビューに等しい幅制約を指定する必要があります。

各画像について、アスペクト比を1:1に保って、高さも等しくなるようにすることができます。

トップスタックビューの場合は、幅を親ビューにも制限してから左マージンとy位置の制約を追加することをおすすめします。

制約と最終結果の画像を参照してください。

You dont need the width constraints The end result

0

私はこれを解決することができました。
まず、私はフルUIStackView(写真のイメージスタックビュー)を選択し、0に余白を設定し、それに制約を追加しました:

enter image description here

その後、私はUIStackView内の画像のすべての人を選択し、それは正方形にするために、制約メニューから171.5に、その幅と高さを変更:その後

enter image description here

、すべてが完璧にスクリーンに整列させました。

関連する問題