2013-07-17 64 views
1

许多人都在为不同的设备使用不同的.xib而苦苦挣扎。如何检测用户是否使用iPhone,iPhone 5或iPad

如果“自动布局”不适合您(它不适合我,它会调整尺寸和图像展示位置),您将不得不手动检测用户正在使用的设备。

我见过许多不同的方法来做到这一点,所以我想我只是分享最简单的方法。 (在我看来)

+0

是的,但每个时代的人提出了不同的解决方案。使用BOOL或AppDelegate,这样它们就在一起,它很清楚它的作用:) –

+0

这根本不是重复的。不同的方法和简单的方法。 –

+0

这并不是重复。如果您有解决方案,请将其作为原始问题的答案发布。不要有意创造重复。 – lifetimes

回答

2

所以答案:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle { 
if ([[ UIScreen mainScreen ] bounds ].size.height == 568) { 
    nibName = [NSString stringWithFormat:@"%@_568", nibName]; 

} 

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    nibName = [NSString stringWithFormat:@"%@_iPad", nibName]; { 

} 

if (self = [super initWithNibName:nibName bundle:nibBundle]) { 
} 

return self; 
} 

第一条语句检查天气,你有设备有iPhone 5的屏幕。

第二次检查您使用iPad的天气。

第三个返回iPhone 4s和之前的正常xib。

请注意,要完成这项工作,您必须创建3个不同的XIB,所有XIB都有不同的后缀。

ViewController.xib

ViewController_568.xib

ViewController_iPad.xib

相关问题