iPhone app视网膜和非视网膜

时间:2013-02-25 11:47:58

标签: iphone ipad xcode4.5 iphone-5

我已经在xcode 4.5中开发了ipad和iPhone应用程序,并通过检查设备来完成:

    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 
}

但是当我在模拟器中检查Retina(4)for iphone5时,所有尺寸的控件都会改变,而且我为iphone提供的prevoius分辨率不匹配。

在这种情况下我该怎么做?

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

您必须创建两个xib文件(一个用于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
    }

答案 2 :(得分:0)

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

    //code

}
else
{

    //code

}