2014-02-11 32 views
0

大家好,我.PCH我有這些定義如何使用這個宏

#define HIDE_TABBAR 
#define SHOW_TABBAR 

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

而且

#if IS_IPHONE_5 
HIDE_TABBAR=568 
#else 
HIDE_TABBAR=480 
#endif 

#if IS_IPHONE_5 
SHOW_TABBAR=519 
#else 
SHOW_TABBAR=431 
#endif 

基本上我想要做的是檢查,如果屏幕是iPhone 5,並根據屏幕大小設置定義變量並在.m代碼中使用它。你能告訴我我能做到嗎?

回答

1

像這樣:

const int HIDE_TABBAR = IS_IPHONE_5 ? 568 : 480; 
const int SHOW_TABBAR = IS_IPHONE_5 ? 519 : 431; 

甚至:

const int HIDE_TABBAR = IS_IPHONE_5 ? 568 : 480; 
const int SHOW_TABBAR = HIDE_TABBAR - 49; 

如果y OU真的要使用此宏(這是不好的編程,但是,嘿,這是你的應用程序):

#define HIDE_TABBAR (IS_IPHONE_5 ? 568 : 480) 
#define SHOW_TABBAR (HIDE_TABBAR - 49) 
+0

你好,謝謝,但是這不能寫在prefix.pch中,我必須將它添加到.m文件中嗎?對? – veereev

+0

當然 - 爲什麼不呢? –

2

做這樣

if(IS_IPHONE_5) 
    { 
     // for iphone 5 
    } 
    else 
    { 
     // for non iphone 5 
    } 

編輯:(W​​RT:避免使用的if/else在我的代碼)使用Ternary operation

+1

最好能解釋爲什麼當前的代碼不工作 – Wain

+0

你好,我想在.M使用HIDE_TABBAR代替。我試圖避免在我的代碼中使用if/else .. – veereev

+3

@veereef否,如果您的代碼中含有? :P你瘋了嗎? – Sulthan