【发布时间】:2014-11-13 08:44:30
【问题描述】:
在 ios7 中,我使用 Xcode5 使用宏来检测设备是 iphone 5 还是 4 ,4s。而且我从来没有遇到过任何问题,它总是可以正常工作。
#define IS_WIDESCREEN ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
if (IS_WIDESCREEN){
//5s
}else{
//4,4s
}
但在 xcode6 中它不起作用,IS_WIDESCREEN 状态始终为 false。
问题是在 Xcode6 和 iOS 8 中
[[UIScreen mainScreen] 边界].size.height
等于 320 而不是 568。
我需要找一个新的宏吗?我在互联网上发现(iOS Writing Macro detect 3.5 inch or 4 inch display)同样用于检测 iphone 5 的屏幕尺寸
【问题讨论】:
-
Apple 的UIScreen documentation 提到“此属性的值可能会在设备旋转时发生变化。”在横向模式中,您希望使用
width来检测 4" 显示器,而不是height;修改宏以使用基于方向的正确属性可能就是您所需要的。 -
谢谢它适用于宽度我真的不明白为什么它在具有相同设置的 2 个版本的 xcode 之间发生变化,但感谢它解决了我的问题
标签: ios objective-c iphone macros screen-size