1

许多人都在为不同的设备使用不同的 .xib 文件而苦苦挣扎。

如果“自动布局”对您不起作用(对我不起作用,它会破坏尺寸和图像位置),您将不得不手动检测用户正在使用的设备。

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

4

1 回答 1

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_568.xib

ViewController_iPad.xib

于 2013-07-17T08:39:27.447 回答