2016-10-31 11 views
0

ストーリーボードの私のビューには、top = 0、height = 55、width = 230という制約のあるimageViewが含まれています。 Xcodeの最後のバージョンで "view as"オプションを使用すると、画像の表示とその品質がすべての画面で同じではないことがわかりました。 iPhone 4では、品質は良好ですが、画像は同じ大きさです。さもなければ、iPhone 6s Plus画面では、画像サイズが画面に適しているが、画質は良くないことがわかります。iOS:すべての画面で同じ品質の画像を表示

どのように画像をすべての画面で同じ方法で表示できますか?誰でも私にこれを解決するための正しい制約を与えてくれますか?

+1

試みは –

+0

@RaduNunuは、あなたがこのような状況のための最高のコンテンツモードが何であるかを教えてくださいすることができ、あなたのUIImageViewのための適切なコンテンツモードを設定するには? –

+0

いくつかありますが、AspectToFitまたはAspectToFillが必要です。どちらも画像の割合を尊重しています –

答えて

2

デバイスの画面によっては、イメージのさまざまな表現を定義する必要があります。 Apple Developerポータルから

のiOSは、コンテンツを画面上に配置するための座標系を使用しています。この の座標系は、ディスプレイの ピクセルにマップされた点の測定値に基づいています。

あなたはすべての3つの画像解像度(normal/@1x@2x@3x)を定義する場合、あなたは行くために良いことがあります。 height: 55, width: 230

@2x@1xの2倍のサイズでなければなりません:normal@1x次のパラメータを持っている必要があること、が重要である何

height: 110, width:460

@3x@1xの3倍の大きさでなければなりません。 height: 165, width:690

画像はmy_imageといい、それはpngです。

  • @1xが呼び出されなければなりません:my_image.png
  • @2xが呼び出される必要があります。[email protected]
  • @3xが呼び出される必要があります。[email protected]

Assets.xcassetsに、これらすべての画像を追加します。 Assets.xcassetsをクリックします。開くと、左側に+記号が表示されます。

enter image description here

+記号をタップし、あなたに名前を付けて画像:これらのスロットに

enter image description here

し、それらを挿入します。今すぐ

enter image description here

、ときあなたはこのイメージを使用しようとしています。 AYスウィフトに:

let image = UIImage(named: "my_image") 
+0

ありがとうございます。私があなたが言ったことを理解すれば、私は同じイメージを持つ必要がありますが、3つの異なる解像度(3部)でなければなりません。そしてコードでは、正しい画像(正しい解像度)を表示するために画面サイズを検出する必要があります。ではない? –

+0

あなたが正しい最初の部分は、画像から3種類の解像度が必要です。しかし、右の接尾辞を付けてアセットカタログに追加すると、OSより適切なものが選択されます。私は命名のための私の答えに少しの例を追加しました。 – dirtydanee

+0

編集していただきありがとうございます。私は何をしなければならないのか分かりましたが、私は小さな問題があります。私は自分のプロジェクトにImages.xcassetsを持っていません。私はAssets.xcassetsしか持っていないし、正直言って私はそれを使ったことはない。私を助けてくれますか? –

関連する問題