我有一个opengl应用程序,在RetinaDisplay模式(双倍比例因子)下渲染效果更好,我注意到iPad模拟了一个低分辨率屏幕(正常比例因子)的iPhone应用程序。
当我的iPhone应用程序在iPad上运行时,我想要将比例因子增加一倍,以便从视网膜显示图形中受益。但看起来iPad真的很好地伪装成了iPhone (如果它是视网膜显示屏就太好了……)
当我强制双倍缩放时,它工作得非常好(至少在模拟器中,我没有要测试的iPad )。
所以我需要一种方法来知道我是不是在iPad上运行,尽管很多事情告诉我它是一个旧的iPhone。
或者也许我不应该尝试这样做?
发布于 2010-12-17 06:15:22
你应该无法区分,如果它是一个iPhone应用程序,那么据它所知它是在iPhone上运行的。如果您想要针对一个iPad,那么您需要为一个iPad目标构建它。
发布于 2010-12-17 07:39:03
如果您只想为iPad编写自定义代码(很可能是与UI相关的自定义方法),那么您可以(按照苹果公司的指示)使用iOS 3.2及更高版本中存在的UI_USER_INTERFACE_IDIOM()方法
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
// The device is an iPad running iPhone 3.2 or later.
}
else
{
// The device is an iPhone or iPod touch.
}您可以在这里阅读更多内容http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BuildTimeConfiguration/BuildTimeConfiguration.html
这是Apple推荐的方法
发布于 2013-02-14 06:24:45
如果应用程序是在iPad上以模拟器模式运行的iPhone应用程序,它的userInterfaceIdiom将为Phone,但模型类型为iPad。您可以使用以下代码检查这一点:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone &&
[[[UIDevice currentDevice] model] hasPrefix:@"iPad"]) {
// This app is an iPhone app running on an iPad
}https://stackoverflow.com/questions/4465832
复制相似问题