【问题标题】:recognizing issues with iphone 5-5s in iOS8 (Xcode6)在 iOS8 (Xcode6) 中识别 iphone 5-5s 的问题
【发布时间】: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


【解决方案1】:

似乎是 iOS 8 的功能,而不是 Xcode。如果设备处于横向状态,请尝试检查宽度是否为 568 以及高度。变化似乎是系统获取当前方向的高度,所以在某种程度上 UIScreen 边界的高度属性不是恒定的。

希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多