我写:
#define IS_IPHONE_5 ([UIScreen mainScreen].bounds.size.height == 568.0)
#ifdef IS_IPHONE_5
#define SCREEN_HEIGHT 568
#else
#define SCREEN_HEIGHT 480
#endif
但它总是返回该设备是 iPhone 5 ......我做错了什么?
最佳答案
你的 IS_IPHONE_5
宏就好了。你可以做这样的事情:
if (IS_IPHONE_5) {
// do something specific for iPhone 5
}
在编译时,此代码将转换为:
if (([UIScreen mainScreen].bounds.size.height == 568.0)) {
}
问题在于您的
SCREEN_HEIGHT
宏。整个 #ifdef
块将在编译时进行评估。由于您确实定义了 IS_IPHONE_5
,因此 SCREEN_HEIGHT
将始终设置为 568。您需要运行时确定屏幕高度。你可以从:
[UIScreen mainScreen].bounds.size.height
关于iphone - #ifdef 检查设备是否为 iPhone 5,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13389137/