首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测iPad上正在运行的iPhone应用程序

如何检测iPad上正在运行的iPhone应用程序
EN

Stack Overflow用户
提问于 2010-12-17 06:06:44
回答 6查看 4K关注 0票数 2

我有一个opengl应用程序,在RetinaDisplay模式(双倍比例因子)下渲染效果更好,我注意到iPad模拟了一个低分辨率屏幕(正常比例因子)的iPhone应用程序。

当我的iPhone应用程序在iPad上运行时,我想要将比例因子增加一倍,以便从视网膜显示图形中受益。但看起来iPad真的很好地伪装成了iPhone (如果它是视网膜显示屏就太好了……)

当我强制双倍缩放时,它工作得非常好(至少在模拟器中,我没有要测试的iPad )。

所以我需要一种方法来知道我是不是在iPad上运行,尽管很多事情告诉我它是一个旧的iPhone。

或者也许我不应该尝试这样做?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-12-17 06:15:22

你应该无法区分,如果它是一个iPhone应用程序,那么据它所知它是在iPhone上运行的。如果您想要针对一个iPad,那么您需要为一个iPad目标构建它。

票数 -3
EN

Stack Overflow用户

发布于 2010-12-17 07:39:03

如果您只想为iPad编写自定义代码(很可能是与UI相关的自定义方法),那么您可以(按照苹果公司的指示)使用iOS 3.2及更高版本中存在的UI_USER_INTERFACE_IDIOM()方法

代码语言:javascript
运行
复制
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推荐的方法

票数 20
EN

Stack Overflow用户

发布于 2013-02-14 06:24:45

如果应用程序是在iPad上以模拟器模式运行的iPhone应用程序,它的userInterfaceIdiom将为Phone,但模型类型为iPad。您可以使用以下代码检查这一点:

代码语言:javascript
运行
复制
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone &&
    [[[UIDevice currentDevice] model] hasPrefix:@"iPad"]) {
    // This app is an iPhone app running on an iPad
}
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4465832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档