4

我有两个 xib,一个用于 iPhone 4,一个用于 iPhone 5;3.5 英寸和 4 英寸。我只是想放一些代码来告诉应用程序加载哪个。我有这段代码应该可以完成这项工作:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone))
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
    //Load 3.5 inch xib
    }
    if(result.height == 568)
    {
        //Load 4 inch xib
    }

我把它放在 ViewController.M 中(我把它放在那里吗?)并且构建失败,说存在解析问题预期标识符“(”有人可以帮我解决这个简单的问题吗?谢谢!

4

4 回答 4

18

在您的 prefix.pch 文件中添加以下行...这是检查屏幕大小的最简单方法,无需制作额外的代码行...

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

现在无论你想在哪里查看屏幕尺寸,只要做出如下的条件,你就可以做任何你想做的事情......

 if(IsIphone5)
{
    //your stuff
}
else
{  
  //your stuff
}

快乐编码!!!!

于 2013-09-11T05:08:39.840 回答
4

把这个条件

if ((int)[[UIScreen mainScreen] bounds].size.height == 568)
{
    // This is iPhone 5 screen
} else {
    // This is iPhone 4/4s screen
}
于 2013-09-11T05:11:09.227 回答
2

试试这个删除最后一个括号

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
      CGSize result = [[UIScreen mainScreen] bounds].size;
      if(result.height == 480)
      {
            //Load 3.5 inch xib
      }
      else if(result.height == 568)
       {
             //Load 4 inch xib
       }
}
于 2013-09-11T05:17:24.917 回答
2

从此行末尾删除多余的“)”

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone))
于 2013-09-11T05:10:17.133 回答