3

iPhone 5への移行に関する以前の投稿では、新しいサイズの起動イメージ*を追加し、必要に応じてAutoLayoutを使用することについてのみ言及しています。

しかし、画面全体を占める背景画像があるxibsがいくつかあります(ビューによっては、ナビゲーションとタブバーが少なくなる可能性があります)。iPhone 5をサポートするには、画面サイズごとに異なる画像が必要になりますが、これはxibやその他の場所でどのように処理されますか?

(*ちなみに、アプリが起動イメージを使用しない場合はどうしますか?)

4

1 に答える 1

3

これが実際に役立つリンクです。起動画像を保存します。ファイル名の最後に「-568h@2x.png」を入力すると、iOSは適切な画像を自動的に選択しません。あなたの仕事を簡単にする上記のリンクで言及されたいくつかのヘルパーメソッドがあります。

上記のリンクのコードを採用しました。Obj-Cのヘルパー関数は次のとおりです。

-(BOOL) IsTall
{
    return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) && ([[UIScreen mainScreen] bounds].size.height * [[UIScreen mainScreen] scale] >= 1136);
}

少しカテゴリを書くことも役に立ちます。

@interface NSString (Special)
-(NSString*)correctImageNameForiPhone5
@end

@implementation NSString (Special)
-(NSString*)correctImageNameForiPhone5
{
    if([self isTall])
            return -imageNameAppendedWith_-568h@2x.png_-; //Do the correct NSString magic here
    else
            return -originalImageName-;
}
@end

最後に、UIImageオブジェクトにアクセスする場合:

NSString *filename = @"backgroundImage.png";
UIImage *img = [UIImage imageNamed:[filename correctImageNameForiPhone5]];

ここでの前提は、iPhone5固有のすべての画像ファイル名が「-568h@2x」で終わることです。このコードサンプルは、プロジェクトにドロップするだけでは確実に機能しませんが、アイデアは得られます。NSStringの修正が必要です。

于 2012-10-05T21:17:23.490 に答える