起動時にアプリに表示する最初のビューに背景画像を表示しようとしていますが、これは LaunchImage と同じ画像です。
LaunchImage アセット カタログはすべて正しくセットアップされており、起動時に正しく表示されます。私は iPad シミュレーターを使用しており、横向きにしています。
ただし、背景画像の向きが間違っているだけでなく、サイズも間違っています。
次のコードを検討してください...
[self.backgroundImageView setImage:[UIImage imageNamed:@"LaunchImage"]];
NSLog(@"Image size should be: %@", [[UIScreen mainScreen] scale] == 1 ? @"1024x768":@"2048x1136");
NSLog(@"Image size is:%@", NSStringFromCGSize(self.backgroundImageView.image.size));
最初の NSLog は 1024x768 を正しく示しています。
ただし、2 番目の NSLog には 320x480 と記載されています。これは、iPhone LaunchImage であるアセット カタログの最初のイメージです。
ここに何かアイデアはありますか?
アップデート:
画像の命名規則についてオンラインで多数の回答を見てきましたが、以下の最初の回答は、これらすべてをリストするのに十分なものです。これらを必要としている人にとっては素晴らしいリストです。
ただし、アセット カタログのポイントは、各デバイス、iOS6 または 7、Retina かどうか、およびどの向きのすべての画像を保存することです。画像が表示されるたびに、どのデバイス、向き、Retina かどうかを確認する必要がある場合、アセット カタログのポイントは何でしょうか? それが彼らの理由の一つだと思いました。
これは、アプリで過去に機能することを期待していたので、機能していたことに注意してください。次に、資産カタログの画像を変更しましたが、すべてまだ機能していました。しかし、私は画像を元に戻すことにしました。ここですべてが壊れました。ビルドをクリーンアップし、派生データを削除して xCode を再起動しようとしました。立ち入り禁止。
アセット カタログに正しいファイルがあります。ただし、予想どおり、以下の Alexander Kostiev からの回答で説明されているように、ファイル名で保存されていないことに気付くでしょう。代わりに、寸法を含む名前が付けられます。しかし、次に投稿するように、それらはjsonで正しく参照されています...
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"filename" : "AppImage@2x320x480.png",
"scale" : "2x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "retina4",
"filename" : "AppImage@2x320x568.png",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"filename" : "AppImage768x1024.png",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"filename" : "AppImage1024x768.png",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"filename" : "AppImage@2x768x1024.png",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"filename" : "AppImage@2x1024x768.png",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"filename" : "AppImage320x480.png",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"filename" : "AppImage@2x320x480-1.png",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"filename" : "AppImage@2x320x568-1.png",
"subtype" : "retina4",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"filename" : "AppImage768x1004.png",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"filename" : "AppImage1024x748.png",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"filename" : "AppImage@2x768x1004.png",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"filename" : "AppImage@2x1024x748.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
上から 4 番目の項目でわかるように、Retina ディスプレイのない iPad の json が縦方向のレイアウトになっています。このファイルが asset-catalog ディレクトリに存在することを確認しました。実際、プレビューで表示した正しい画像です。
さらに考えはありますか?
更新 2:
また、background-Landscape~ipad.png および background-Portrait~ipad.png という名前のファイルを追加しようとしました。私は今、画像をロードするために以下を使用しています...
[self.backgroundImageView setImage:[UIImage imageNamed:@"background"]];
background と background.png を試しました。ただし、画像は表示されず、image.size は 0,0 です。すなわち。UIImage imageNamed は nil 画像をくれました。
私は今、完全に途方に暮れています。