2

私はユニバーサル iOS アプリに取り組んでおり、iPhone 5 に別の xib ファイルを使用したいと考えています。現在の動作方法は、適切なデバイス修飾子 (ここで指定されているとおり: http://developer.apple.com ) を持つファイルを自動的に選択することです。 /library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html#//apple_ref/doc/uid/10000051i-CH1-SW2 )。ただし、iPhone 5 の取り扱い方法については言及されていません。開発者は、自動スケーリングだけでなく、5 で異なる/ユニークなエクスペリエンスを作成することを好むという印象を受けているため、驚いています...

機能する修飾子を知っている人はいますか? (例: myxib~iphone5.xib) デバイスの検出と切り替えを自分で処理するよりも便利です。

乾杯!

4

1 に答える 1

4

残念ながら命名規則はありませんが、方法はあります。これは私が使用しているものです:

私は #define マクロをすべて入れた GlobalConstants という名前のグローバル .h ファイルを持っています。

static BOOL is4InchRetina()
{
    if ((![UIApplication sharedApplication].statusBarHidden && (int)[[UIScreen mainScreen] applicationFrame].size.height == 548) || ([UIApplication sharedApplication].statusBarHidden && (int)[[UIScreen mainScreen] applicationFrame].size.height == 568))
        return YES;

    return NO;
}

次に、ビュー コントローラー クラスのいずれかで、次のように init メソッドをオーバーライドします。

#import GlobalConstants.h

-(id) init {

if(is4InchRetina()) self = [super initWithNibName:@"myNibName5" bundle:[NSBundle mainBundle]];
else self = [super initWithNibName:@"myNibName" bundle:[NSBundle mainBundle]];

return self
}
于 2012-10-16T08:29:08.310 に答える