133*_*ode 3 iphone height preprocessor if-statement
我写:
#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
Run Code Online (Sandbox Code Playgroud)
但它总是返回该设备是iPhone 5 ...我做错了什么?
rma*_*ddy 12
你的IS_IPHONE_5宏很好.你可以做这样的事情:
if (IS_IPHONE_5) {
// do something specific for iPhone 5
}
Run Code Online (Sandbox Code Playgroud)
在编译时,此代码将转换为:
if (([UIScreen mainScreen].bounds.size.height == 568.0)) {
}
Run Code Online (Sandbox Code Playgroud)
问题是你的SCREEN_HEIGHT宏.整个#ifdef块将在编译时进行评估.由于您确实定义了IS_IPHONE_5,因此SCREEN_HEIGHT将始终设置为568.
您需要运行时确定屏幕高度.你可以从这个:
[UIScreen mainScreen].bounds.size.height
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3885 次 |
| 最近记录: |