用于动态xib加载的iPhone 5设备修改器

时间:2012-10-16 08:16:52

标签: iphone ios ipad iphone-5 universal

我正在开发一个通用的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)比自己处理设备检测和切换更方便。

干杯!

1 个答案:

答案 0 :(得分: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
}