我正在尝试定义一个常量HEIGHT_WINDOW,但我希望它取决于用户是在iPhone 4还是iPhone 5上运行。我已经有办法检查用户所在的iPhone。
有没有办法可以做类似的事情:
if (//is running on iPhone 4) {
#define HEIGHT_WINDOW 300
} else {
#define HEIGHT_WINDOW 400
}
如果有人有任何提示我会非常感激 - 再次我想根据用户是在iPhone 4还是iPhone 5上运行来定义#define。
答案 0 :(得分:4)
你不能在编译时这样做,因为决定必须在运行时完成,所以尝试使用预处理器宏甚至没有意义。请改用普通变量:
double windowHeight = [UIScreen mainScreen].bounds.size.height > 500
? 400
: 300;
答案 1 :(得分:1)
试试这个
CGSize result = [[UIScreen mainScreen] bounds].size;
if (result.height==480)
{
NSLog(@"iPhone 4 or 4s");
}
if (result.height==568)
{
NSLog(@"iPhone 5");
}
答案 2 :(得分:0)
最好使用变量代替常量。宏不会这样工作。
int HEIGHT_WINDOW;
if (//is running on iPhone 4) {
HEIGHT_WINDOW = 300
} else {
HEIGHT_WINDOW = 400
}
答案 3 :(得分:-1)
我在我的代码中做了很多次,这肯定有用。
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
if(!IS_IPHONE_5)
{
[self.view setFrame: CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y , self.view.frame.size.width, 300)];
}
else
{
[self.view setFrame: CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y , self.view.frame.size.width, 400)];
}