2012-04-21 11 views
1

iOSアプリケーションのテスト中ですが、iOSシミュレータではすべてがスムーズに進みますが、物理デバイスでテストすると奇妙なことが起きますハプニング。物理デバイスでテストすると白と黒のバーが表示される

私はUIImageViewの内部に画像を持ち、ポップオーバーの背景として使用しています。デバイスでアプリを実行すると、白黒のストライプ画像として表示されます。

エラーは発生せず、警告もメモリの問題もなく(私が知る限り)、デバッグウィンドウには何も表示されません。 White/Black striped popover

私の元画像が、主パターンと濃い灰色のトーンは次のとおりです。

この

が表示された画像です。それはPNGとして保存され、私のプロジェクトにコピーされます。それはソース管理下でさえあります。見知らぬ人にすると、イメージを全く違うものに変えると、それは機能します。

名前を変更したり、再インポートしたりしました。何も動作していないようです。

アイデア?この白黒画像はどこから来ていますか?これをどうすれば解決できますか?

+0

プレビューまたはPSで開き、できるだけズームインします。私はあなたのイメージが本当にグレーではないと確信しています。 – CodaFi

答えて

4

アプリケーションが読み込むPNGは、アプリケーションバンドルに追加したPNGのバイト単位のコピーではありません。 XCodeはいくつかの変更を加え、チャンネルをBGRの順番に並べ、アルファを混乱させる。 this post on iPhone "Optimized" PNGsを参照してください。

これは推測ですが、チャンネルの順序、ビット深度、アルファなどの画像の特性によっては、XCodeが想定しているものと異なる場合があります。そうすれば、イメージを破損してはならないチャネル値を交換することになります。 (ただし、画像がグレースケールの場合、1つのチャンネルで問題は発生しません)

元のサイズと同じサイズで新しい空白の画像を作成してから、背景画像の内容をコピーしてください新しいものに入れる。画像が不透明である場合は、アルファチャンネルがないことを確認してください。

「プレビュー」で問題の画像を開き、「表示」 - >「インスペクタを表示」を選択することもできます。私は仕事をしているイメージに見られるような情報を添付しました。

Preview Inspector showing General tab

Preview Inspector showing PNG tab

編集:それはあなたのファイルを変更することXCodeのを防止することができます。 'Build Settings'の 'Packaging'には、 'PNG Filesを圧縮する'オプションがあります。プロジェクト内のPNGファイルを正確に複製する必要がある場合は、これをオフにします。あなたのアプリは画像を読み込むのに時間がかかりますが、PNGファイルをより小さなサイズに圧縮することができます。 Xcode's built-in (de)optimizationを参照してください。

enter image description here

+0

魅力的な作品です!私は画像が(一度に)グレースケールに変換されたことを忘れていました。私はちょうどPhotoshopに入り、Image-> Mode-> RGBに行くことでRGBに変換し直しました。ありがとう! –

関連する問題