我有一个仅为iPhone开发的应用程序。当用户在iPAD上运行它时 它没有正确显示。我知道当项目是通用的时候如何检测“IS_iPAD”但是 当项目是iPhone特定时,USER DEVICE总是作为iPhone返回。
如何检测iPhone特定应用程序是否在iPAD上运行?
答案 0 :(得分:8)
为了完成,这里是@ user42949指出的@MichaelPatzer答案
如果该应用是在iPad上以模拟器模式运行的iPhone应用, 它将具有Phone的userInterfaceIdiom,但是具有iPad的型号类型。 您可以使用以下代码进行检查:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone &&
[[[UIDevice currentDevice] model] hasPrefix:@"iPad"]) {
// This app is an iPhone app running on an iPad
}
答案 1 :(得分:0)
您可以使用此不同的宏来了解您使用的是iPhone,iPhone 5还是iPad:
#define IS_IPHONE() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE5() ((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) && [UIScreen mainScreen].bounds.size.height == 568)
答案 2 :(得分:0)
另一个选择,如果你的代码是特定于布局的(我就是这样的):
CGSize screenSize = [UIScreen mainScreen].bounds.size;
CGFloat screenRatio = MIN(screenSize.width / screenSize.height, screenSize.height / screenSize.width); // account for rotation
if(screenRatio > 6.65 && screenRatio < 6.67) {
// iPad is 6.66666
}