【发布时间】:2018-02-22 03:08:44
【问题描述】:
如何检测 iPhone X 上的运行情况?我尝试了以下代码。
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#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 IS_IPHONE_X (IS_IPHONE && SCREEN_MAX_LENGTH == 812.0)
当我在 iOS 模拟器中运行这个宏时,IS_IPHONE_X 为真。这个宏正确吗?
【问题讨论】:
-
“我如何检测特定设备”的答案长期以来一直是“不要;询问您需要的功能,而不是设备”。您可能确实对此有正当需求,但请仔细考虑。
-
我使用:#define IS_IPHONEX (IS_IPHONE_PORTRAIT_SIZE_CLASS([UIScreen mainScreen].traitCollection) && [[UIScreen mainScreen] bounds].size.height == 812.0)
-
使用 UIScreen.mainScreen.fixedCoordinateSpace.bounds.size.height == 812.0 无需担心设备方向。
标签: ios objective-c cocoa-touch