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