2012-03-12 6 views
3

これは非常に簡単な問題かもしれませんが、私は1週間この問題を抱えています。私はUIImageViewを使用してDropboxブランディングPNG画像を表示しています。私はそれをInterface Builderで正しく見ていますが、iOSシミュレーターと実際のデバイス(iPad)の強いピクセル化に気づくのは簡単です。ここで私は、シミュレータと一緒にIBの画面キャプチャを添付:UIImageView iOSシミュレータとデバイス上のPNGピクセル化

On the left the IB. On the right the simulator. Notice the pixelation.

私は本当に任意のヒントをいただければ幸いです。

ありがとうございます!

+0

これは8ビットまたは24ビットのPNGですか? –

答えて

4

InterfaceBuilderは、iOSやシミュレータとはまったく異なる環境です。レイアウトなどは翻訳する必要がありますが、すべての外観が最終製品を常に判断(したがって設計)するようにする必要があります。

画像が少し伸びているようです。これにはいくつかの理由があります。最初に確認するのは、UIImageViewのサイズ変更マスクです。このため、UIImageViewsが自動サイズ変更するのは一般的に悪いことです。

ちなみに、自動サイズ変更は、親ビューのサイズが変更されたときに、サブビューが適切に表示されているかどうかを確認するUIKitの方法です。サブビューの移動量、ストレッチ量を指定できます。それについてhereを読んでください。

あなたがしたいことは、あなたの視点をデザインすることです。質問に答える:この画像を最終製品にどれくらい大きくしたいですか? - そして、実際の大きさのPNGを作ります(網膜ディスプレイの2倍の大きさの@ 2x変形も生成します)。次に、IBでデザインするときにUIImageViewのサイズを同様にして、自動サイズ設定がストレッチを禁止するように設定されていることを確認します。

これは問題を解決するはずです。

+1

イメージのサイズ変更を避けたいのですが、デバイスの回転やその他の変更に意味がある場合があります。このような場合、iOSは通常あなたのスクリーンショットよりもはるかに優れた仕事をします。言い換えれば、あなたが見ている種類のアーティファクトは通常、極端な場合にのみ発生します。例えば、画像のサイズを大きくしたり小さくしたりするなどです。または、画像が24ビットPNGではなく8ビットPNGである可能性があります。 –

2

イメージのサイズがUIImageViewのサイズと一致することを確認してください。画像が目的の画像ビューよりも小さくなると、画像が伸びて塗りつぶされ、ピクセル化を引き起こす可能性があります。また、新しい5.1 Simulator for iPadを使用している場合は、新しい網膜スクリーンがデフォルトになります。つまり、ピクセル化を防ぐために@ 2xサイズの画像が必要になります。

関連する問題