gpt4 book ai didi

ios - 使用宏检测 iPhone6 和 iPhone6 Plus

转载 作者:可可西里 更新时间:2023-11-01 03:39:12 25 4
gpt4 key购买 nike

我正在尝试检测当前设备是 iPhone5、iPhone6 还是 iPhone 6 Plus。

在我的应用程序中,我已经使用这个宏来检测完美运行的 iPhone 5。

#define IS_IPHONE_5      (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)568) < DBL_EPSILON)

同样,我使用这个宏来检测 iPhone 6 和 iPhone 6 Plus。

#define IS_IPHONE_6      (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)667) < DBL_EPSILON)
#define IS_IPHONE_6_PLUS (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)736) < DBL_EPSILON)

IS_IPHONE_5 宏在任何方向都按预期工作。

我的问题是,当设备处于横向模式时,IS_IPHONE_6 和 IS_IPHONE_6_PLUS 宏不会返回 true。但是,当设备以纵向方式放置时,它们确实会按预期工作。给了什么?

此外,如果有人对检测 iPhone5、6 和 6 Plus 有更好的建议,请分享。

最佳答案

这是针对 iOS 系统版本和 SDK 版本的任意组合进行测试和设计的

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)

#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))

#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)

注意:如果 iPhone 6 处于缩放模式,则 UI 是 iPhone 5 的放大版本。这反射(reflect)在宏中。

用法:http://pastie.org/9687735

关于ios - 使用宏检测 iPhone6 和 iPhone6 Plus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com