1
许多人都在为不同的设备使用不同的.xib而苦苦挣扎。如何检测用户是否使用iPhone,iPhone 5或iPad
如果“自动布局”不适合您(它不适合我,它会调整尺寸和图像展示位置),您将不得不手动检测用户正在使用的设备。
我见过许多不同的方法来做到这一点,所以我想我只是分享最简单的方法。 (在我看来)
许多人都在为不同的设备使用不同的.xib而苦苦挣扎。如何检测用户是否使用iPhone,iPhone 5或iPad
如果“自动布局”不适合您(它不适合我,它会调整尺寸和图像展示位置),您将不得不手动检测用户正在使用的设备。
我见过许多不同的方法来做到这一点,所以我想我只是分享最简单的方法。 (在我看来)
所以答案:
- (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
是的,但每个时代的人提出了不同的解决方案。使用BOOL或AppDelegate,这样它们就在一起,它很清楚它的作用:) –
这根本不是重复的。不同的方法和简单的方法。 –
这并不是重复。如果您有解决方案,请将其作为原始问题的答案发布。不要有意创造重复。 – lifetimes