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 上创建不同/独特的体验,而不仅仅是自动缩放......

有人知道有效的修饰符吗?(eg myxib~iphone5.xib) 比自己处理设备检测和切换要方便。

干杯!

4

1 回答 1

4

不幸的是,没有命名约定,但有一种方法。这就是我正在使用的:

我有一个名为 GlobalConstants 的全局 .h 文件,我将所有#define 宏都放入其中。我有这个:

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 回答