许多人都在为不同的设备使用不同的 .xib 文件而苦苦挣扎。
如果“自动布局”对您不起作用(对我不起作用,它会破坏尺寸和图像位置),您将不得不手动检测用户正在使用的设备。
我见过很多很多不同的方法来做到这一点,所以我想我只分享最简单的一种。( 在我看来 )
许多人都在为不同的设备使用不同的 .xib 文件而苦苦挣扎。
如果“自动布局”对您不起作用(对我不起作用,它会破坏尺寸和图像位置),您将不得不手动检测用户正在使用的设备。
我见过很多很多不同的方法来做到这一点,所以我想我只分享最简单的一种。( 在我看来 )
所以答案:
- (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