0

我在 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 
}

但是当我在模拟器中检查 iphone5 的 Retina(4) 时,所有控件的大小都发生了变化,并且我为 iphone 提供的先前分辨率不匹配。

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

4

3 回答 3

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)

于 2013-02-25T11:51:22.757 回答
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
    }
于 2013-02-25T11:56:18.990 回答
0
if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{

    //code

}
else
{

    //code

}
于 2013-02-25T12:23:49.117 回答