1

私は iOS アプリケーションをテストしている最中です。iOS シミュレーターでは (もちろん) すべてがスムーズに進みますが、物理デバイスでテストすると、奇妙なことが起こり始めます。

UIImageView 内に画像があり、それをポップオーバー背景として使用しています。デバイスでアプリを実行すると、白黒の縞模様の画像として表示されます。

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

表示される画像は次のとおりです。 ホワイト/ブラック ストライプ ポップオーバー

私の元のイメージは、主に模様のある濃い灰色のトーンです。PNG として保存され、プロジェクトにコピーされます。ソース管理下にさえあります。さらに奇妙なのは、画像をまったく別のものに変更すると、それが機能することです。

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

何か案は?この白/黒の画像はどこから来たのですか? どうすればこれを修正できますか?

4

1 に答える 1

4

アプリケーションがロードする PNG は、アプリケーション バンドルに追加した PNG のバイトごとのコピーではありません。XCode はそれにいくつかの変更を加え、チャンネルを BGR の順序に並べ、アルファをいじります。iPhone の「最適化された」PNG に関するこの投稿を参照してください。

これは憶測ですが、画像の一部のプロパティ (チャネルの順序、ビット深度、アルファなど) は、XCode が想定するものとは異なる場合があります。その後、本来あるべきではないチャンネル値を交換してしまい、画像が破損します。(ただし、画像がグレースケールで 1 つのチャネルを使用している場合、それだけでは問題にはなりません。)

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

問題のある画像をプレビューで開き、[表示] -> [インスペクタを表示] を選択することもできます。機能する画像に表示される種類の情報を添付しました。

[全般] タブを表示しているプレビュー インスペクター

[PNG] タブを表示しているプレビュー インスペクター

編集: XCode がファイルを変更するのを防ぐことができます。「ビルド設定」の「パッケージング」の下に、「PNG ファイルを圧縮する」オプションがあります。プロジェクト内の PNG ファイルを正確に複製する必要がある場合は、これをオフにします。アプリが画像を読み込むのにより多くの時間がかかりますが、PNG ファイルをより小さなサイズに圧縮できる場合があります。Xcode の組み込みの (de)optimizationを参照してください。

ここに画像の説明を入力

于 2012-04-21T23:37:52.360 に答える