3

重複の可能性:
iOS5.1とXcode4.2およびiPad3の網膜

私は自分のアプリをiPad2にロードしようとしています(iPad 3でうまく動作するため)。画像を縮小して、image.pngとimage@2x.pngのような2セットの画像を作成しました。次のコマンドで画像を読み込もうとすると、次のようになります。

someImageView.image = [UIImage imageNamed:@"image.png"];

または、IBを介して、期待した結果が得られず(ここで説明するように、iPadのディスプレイに応じて正しいバージョンの画像を選択するなど)、アプリケーションを実行しているiPadに関係なく、image.pngのみが表示されます。次の方法で画像をインポートしてみてください。

NSString* imagePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
UIImage* someImage = [[UIImage alloc] initWithContentsOfFile:imagePath];
someImageView.image = someImage;

これは問題なく機能し、iPad 3でアプリを実行すると、@2xpngファイルが使用されます。これは機能しますが、IBを介して一部のイメージを使用しているため、使用するすべてのイメージを割り当てて解放する必要があるかどうかはわかりません。それは正常な動作ですか?

SDK 4、4.2、5を使用しましたが、何も変更されていません。また、Lionに切り替えたくないため、Xcode4.2を使用しています。

  • 使用せずsomeImageView.image = [UIImage imageNamed:@"image.png"];に、IBスロットの画像「image.png」を選択してみました。動作しませんでした。
  • imageIBスロットに入力するだけで試してみました。動作しませんでした。何があってもimage.pngを取得します。
  • 使っsomeImageView.image = [UIImage imageNamed:@"image@2x.png"];てみましたどのデバイスでも2倍の画像が表示されます。
  • とを使っimage@2x~ipad.pngてみimage~ipad.pngました。動作しませんでした。
  • 画像のすべてのセットには正しい名前が付けられ、サイズは正しく、すべて同じグループ/フォルダー内のプロジェクトにインポートされています。
  • これは普遍的ではありませんが、iPadアプリケーションです。
  • プロセス中にビルドを数回クリーンアップしました。

どんな助けでも大歓迎です!

* UPDATE:が2を返すUIImageときに@ 2xに切り替わります。これを確認すると、1が返されます。これが、@2xがアクティブ化されていない理由です。[UIScreen mainScreen].scaleでは、4.2がiPad3 Retinaディスプレイを認識しないかどうか誰かが知っていますか?私はここで似たようなものを見つけました。

*更新2:SDK 5.1をXcodeにマージし、ベースSDKとして使用することで、これを機能させることができました。SDKフォルダーにSDK5と5.1の両方がある場合は機能せず、SDK5バージョンを削除するとチャームとして機能しました。

4

2 に答える 2

0

画像に接尾辞を追加してみました~ipadか?したがって、網膜iPadイメージの名前を変更して、次のように呼び出す必要があります。

[UIImage imageNamed:@"image@2x~ipad.png"]

お役に立てれば。

于 2012-10-01T18:21:04.850 に答える
0

Xcode 4.3.1が新しいiPad(retina)をサポートする最初のバージョンであったため、デフォルトでは機能しません。

とにかく動作させたい場合は、この回答を確認してください

于 2012-10-01T19:47:41.717 に答える