我有一个只为iPhone开发的应用程序。当用户在iPAD 上运行它时,显示不正确。当项目是通用的时候,我知道如何检测“IS_iPAD”,但当项目是iPhone特定时,我们知道如何检测“IS_iPAD”,但用户设备总是作为iPhone返回。在iPAD上检测iPhone'正在运行'
如何检测iPhone上的特定应用程序是否在iPAD上运行?
我有一个只为iPhone开发的应用程序。当用户在iPAD 上运行它时,显示不正确。当项目是通用的时候,我知道如何检测“IS_iPAD”,但当项目是iPhone特定时,我们知道如何检测“IS_iPAD”,但用户设备总是作为iPhone返回。在iPAD上检测iPhone'正在运行'
如何检测iPhone上的特定应用程序是否在iPAD上运行?
您可以使用此不同的宏知道,如果你使用的是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)
完成的缘故这里是@MichaelPatzer答案通过@ user42949
指出如果应用程序是在iPad上以模拟器模式运行的iPhone应用程序,则它将具有手机的userInterfaceIdiom,但是是iPad的模型类型。 您可以用下面的代码检查:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone &&
[[[UIDevice currentDevice] model] hasPrefix:@"iPad"]) {
// This app is an iPhone app running on an iPad
}
接受您自己的答案@Shebuka – Vinodh
另一种选择,如果你的代码是布局特定的(这是我来到这里):
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
}
如果我的理解对不对你的问题这应该有所帮助:http://stackoverflow.com/questions/4465832/how-to-detect-my-iphone-app-is-being-run-on-an-ipad/14864400#14864400 – Hitman
帮助!它回答了我的问题...谢谢 – BhushanVU