2013-09-27 76 views
2

我想在我的應用中定義SCREEN_HEIGHT。我使用了下面的代碼,但是它總是爲我返回568。任何人都可以幫我解決這個問題嗎?如何在ios中將#define設備高度設置爲宏

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

#ifdef IS_IPHONE_5 
#define SCREEN_HEIGHT 568 
#else 
#define SCREEN_HEIGHT 480 
#endif 

謝謝。

+0

看到我的編輯答案。它在我的代碼中工作,也是我的朋友... – NiravPatel

+0

@PanktiPatel顯然'#DEFINE'是一個編譯時的練習,但屏幕高度是一個運行時間的決心。所以'SCREEN_HEIGHT'的'#DEFINE'不能使用常量,而必須表示一些運行時表達式(比如看看'[UIScreen mainScreen]'屬性)。 – Rob

回答

1
#define height [UIScreen mainScreen].bounds.size.height 
+0

感謝您的回覆。但我想要屏幕高度。我只需要在#if和#endif語句中定義它。 –

+0

請檢查最新的答案。 – Nirmalsinh

2

寫這低於行prifix.pch文件...

#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height 

這將definetly work..i試圖在我的代碼....

希望這將有助於我的朋友...

快樂編碼!

+0

感謝您的回覆。但我不想爲此使用任何變量。我只需要在#if和#endif語句中定義它。 –

+0

@PanktiPatel - 無適用條件如何正確使用'if'語句? – iPatel

+0

看到我編輯的答案... – NiravPatel

0

儘量把#undef SCREEN_HEIGHT#define SCREEN_HEIGHT

#undef SCREEN_HEIGHT 
#ifdef IS_IPHONE_5 
#define SCREEN_HEIGHT 568 
#else 
#define SCREEN_HEIGHT 480 
#endif 
0

您也可以定義屏幕高度爲:

#define ScreenBound  ([[UIScreen mainScreen] bounds]) 
#define ScreenHeight  (ScreenBound.size.height) 
相關問題