如何以编程方式区分 iPhone 和 iPhone(Retina 3.5 英寸)? [复制]
Posted
技术标签:
【中文标题】如何以编程方式区分 iPhone 和 iPhone(Retina 3.5 英寸)? [复制]【英文标题】:How to distinguish between iPhone and iPhone (Retina 3.5 inch) Programmatically? [duplicate] 【发布时间】:2013-09-17 05:14:15 【问题描述】:通过检查设备的高度很容易检查设备是 iPhone 5 还是 iPhone,如下所示
if([UIScreen mainScreen].bounds.size.height == 568)
// iPhone 5
else
// Regular iPhone
但是,我想知道,在进入 else body 480 height 后,我想检查它的 iPhone 还是 iPhone 视网膜?
怎么做?
我的主要目标是设置导航,正如我在另一个问题中给出的那样
ios XIB
谢谢
【问题讨论】:
你说“iPhone”是什么意思? 您要解决的最终问题是什么?你是想表达你的观点吗?您应该能够使用自动布局或弹簧和支柱来处理它。您是否尝试加载不同的图像资产? iOS 会为您处理这些细节。您是否正在尝试做其他事情? @BergQuester,亲爱的,我被困在 iOS 不同的 xib 和屏幕上。你以前指导过我,但也通过使用 AutoSize,我无法为 iPhone4 和 iPhone5 以及没有 ratina 的 iPhone 制作相同的 xib。 @BergQuester,你能看到你回答的老问题吗?这是链接***.com/questions/17938427/… 啊,是的,我现在想起来了。为所有 iPhone 使用相同的 xib 非常容易。只需按照人们在另一个问题中告诉您的内容进行操作即可。通过为三种不同的手机型号提供三种不同的 xib,您只会为自己创造更多的工作,并使维护您的应用程序变得更加困难。 【参考方案1】:如果你真的需要这个,你可以使用这样的东西:
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
if ([[UIScreen mainScreen] scale] >= 2.0)
// retina
else
// not retina
【讨论】:
【参考方案2】:如下在pch文件中定义为宏
#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
【讨论】:
【参考方案3】:我猜你必须检查屏幕是否响应scale
消息,它的值是2.0
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
&&
[[UIScreen mainScreen] scale] == 2.0)
//Retina
else
//Not Retina
【讨论】:
【参考方案4】:使用这个方法..
返回 YES 表示它的视网膜,否则非视网膜,
+(BOOL)iPhoneRetina
return ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) ;
【讨论】:
以上是关于如何以编程方式区分 iPhone 和 iPhone(Retina 3.5 英寸)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式识别iphone(3g,4s,5)版本[重复]