2013-02-25 82 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 

} 
相关问题