2013-02-25 86 views
0

我已經開發在Xcode 4.5兩種iPad和iPhone應用程序,並通過檢查設備做到了:iPhone應用程序視網膜和nonretina

if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) 
{ 
    //code for ipad.Adjusting sizes for all the controls 
} 
    if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone) 
{ 
    //code for iphone.Adjusting sizes for all the controls 
} 

但是,當我檢查視網膜在仿真iPhone5的所有大小(4)的控制權被改變,並且我爲iPhone提供的prevoius決議不匹配。

在這種情況下該怎麼辦?

+0

使用自動佈局。這是它意味着的情況。 – 2013-02-25 12:16:23

+0

@ RichardJ.RossIII我還需要爲iPad做嗎? – Honey 2013-02-25 12:45:04

回答

1
This is the other optional way to find out for check iPhone5 

#define IS_IPHONE_5 (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 
如果你想顯示從底部組件

..

#define GET_Y_AXIS_FROM_BOTTOM(a)((double)([[ UIScreen mainScreen ] bounds ].size.height)-a) 

CGRectMake(0,GET_Y_AXIS_FROM_BOTTOM(50),320,50)

+0

我是否需要再次對所有控件的大小進行硬編碼? – Honey 2013-02-25 11:53:13

+0

是否要求重置iphone5的大小? – SachinVsSachin 2013-02-25 11:54:06

+0

什麼我問的是,如果我已經在iphone中使用了一個tabbar從(0,411,320,50)開始。如果它是iphone5,我應該再次更改這個大小嗎?因爲當我測試保持相同時,我可以看到屏幕中間的tabbar?它可以自動調整大小,如果它是任何iPhone設備? – Honey 2013-02-25 11:56:29

0

你必須要麼創建兩個廈門國際銀行文件(一個用於iPhone4和iPhone5),或者必須以編程方式創建所有控件,並將其放入循環中,如下所示。

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
    if (screenBounds.size.height == 568) { 
     //put your iphone 5 control here 
    } else { 
     //put your iphone 4 control here 
    } 
+0

看看是否下一個版本的iPhone來了,然後我們必須再次編寫?有什麼要檢查,並使其自動調整基於iPhone的發佈的所有控制。 – Honey 2013-02-25 12:01:42

+0

不,在這個時候你必須根據divice.and誰改變你的界面,誰知道在下一個版本中蘋果會給我們一些功能來自動調整。(蘋果搖滾) – Dilip 2013-02-25 12:03:59

0
if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) 
{ 

    //code 

} 
else 
{ 

    //code 

} 
相關問題