([[UIScreen mainScreen] scale] == 2.0) & ([[UIScreen mainScreen] bounds].size.height == 568.0) 不
Posted
技术标签:
【中文标题】([[UIScreen mainScreen] scale] == 2.0) & ([[UIScreen mainScreen] bounds].size.height == 568.0) 不工作【英文标题】:([[UIScreen mainScreen] scale] == 2.0) & ([[UIScreen mainScreen] bounds].size.height == 568.0) not working 【发布时间】:2014-09-29 04:59:32 【问题描述】:由于某种原因,这不起作用,因为我使用 ios 8 更新到最新的 xcode。它无法识别
([[UIScreen mainScreen] scale] == 2.0)
&
([[UIScreen mainScreen] bounds].size.height == 568.0)
// Indicates game is running on iPad
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
CCLOG(@"Running on iPad");
// it doesn´t recognize this any more
if ([[UIScreen mainScreen] scale] == 2.0)
CCLOG(@"Running on iPad Retina");
else
CCLOG(@"Running on iPad 2");
else
CCLOG(@"Running on iPhone");
// it doesn´t recognize this any more
if ([[UIScreen mainScreen] bounds].size.height == 568.0)
CCLOG(@"Running on iPhone 5");
else
CCLOG(@"Running on iPhone 4/4S");
【问题讨论】:
您使用了哪些设备?你在 iPad Retina 上试过这个[[UIScreen mainScreen] scale] == 2.0
吗?
不要比较没有 epsilon 的浮点数 ;)。不知道这是不是这里的错误,但你不应该这样做。
@WaqasRaja 我尝试了所有模拟器... ipad 2、ipad air、ipad Retina、iphone 4s、iphone 5、iphone 5s、iphone 6、iphone 6 plus。在 ipad 上运行时,它们都转到 ipad 2 部分,在 iphone 上运行时,它们都转到 iphone 4/4s 部分。
更新:由于某种原因,它现在开始适用于 ipad 视网膜模拟器......但仍然不适用于 iphone 5/iphone5s/iphone6/iphone6plus
bounds.height 它是一个浮点数,你可以尝试将它转换成一个整数来比较它: NSInteger screenHeight_Int=screenHeight;并比较这个数字 if (screenHeight_Int==568)... etc
【参考方案1】:
您需要添加对 iPhone 5 的支持。为此,您需要将名为 Default-568h@2x.png
的启动图像添加到您的项目中。如果没有此图像,iOS 将在兼容模式下运行应用程序,即高度 = 468
这个问题在前面的其他问题中问过
how-to-add-iphone-5-large-screen-support-to-ios-apps-in-xcode
How to develop or migrate apps for iPhone 5 screen resolution?
【讨论】:
我知道。我已经在使用名为 Default-568h@2x.png 的启动图像。我从 iOS 6 开始就一直在使用它……我的意思是,在我从 Xcode 5 更新到 Xcode 6 之前,一切正常。然后问题就开始了 更新:我刚刚在 Xcode 5.1 上尝试了我的代码,并且 [[UIScreen mainScreen] bounds].size.height == 568.0 运行良好。 Xcode 6 中的什么导致了这个问题,我该如何解决?以上是关于([[UIScreen mainScreen] scale] == 2.0) & ([[UIScreen mainScreen] bounds].size.height == 568.0) 不的主要内容,如果未能解决你的问题,请参考以下文章
横向模式的“UIScreen mainScreen] applicationFrame]”
iPad:[UIScreen mainScreen].bounds 返回错误的坐标
为啥 [UIScreen mainScreen].bounds] 没有返回全屏尺寸?
[UIScreen mainScreen].bounds 与 [UIApplcation sharedApplication].keyWindow.bounds?