-2

我参加了一个通用项目。我已经为 iPhone 5 屏幕编码,但它没有检测到它。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    //ui for ipad
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) {
        tableView.frame = CGRectMake(0, 40, 320 ,508);
    }
    else {
        tableView.frame = CGRectMake(0, 40, 320 ,420);
    }
}

但它不起作用。当我在 iPhone 5 screenBounds = 320*480上调试代码时。

我哪里错了?

4

7 回答 7

3

检测iPhone5屏幕就是这么简单,写就行

#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)

在您的 .pch 文件中......您可以进一步检查 iPhone5 屏幕,如if(IS_IPHONE5).

于 2013-03-20T09:35:07.143 回答
1

UITableView从 IB 中选择您的并选择Retina 4所有屏幕的大小,甚至是主窗口 xib 文件。即使在 iphone 4 上也能正常工作。

在此处输入图像描述

于 2013-03-20T09:34:21.323 回答
1

这段代码对我来说很好

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

    if (IS_IPHONE_5)
        {
 //iphone 5
    }
于 2013-03-20T11:20:22.437 回答
1

您为 iphone 5.Default-568h@2x.png 文件添加启动画面,然后它的工作正常

于 2013-03-20T09:41:42.337 回答
0

尝试使用它来检测 iPhone 5:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
   CGSize theHeight = [[UIScreen mainScreen] bounds].size;
   if(theHeight.height == 568) {
        // iPhone 5
        tableView.frame = CGRectMake(0, 40, 320 ,508);
   }
   else {
        // iPhone 4
        tableView.frame = CGRectMake(0, 40, 320 ,420);
   }
}

或者,您可以定义这个:

#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)

您可以在需要确定它是否是 iPhone 5 时重复使用它。

于 2013-03-20T09:34:04.413 回答
0

试试这个代码::

if ([[UIScreen mainScreen] bounds].size.height == 568)
{
    [tableView setFrame:CGRectMake(0, 40, 320 ,508)];
}
else if ([[UIScreen mainScreen] bounds].size.height == 480)
{
    [tableView setFrame:CGRectMake(0, 40, 320 ,420)];
}

希望,它会帮助你。

谢谢。

于 2013-03-20T09:34:41.700 回答
0

我使用此代码检查 iPhone 5 设备。

float scrnheight = [[UIScreen mainScreen] bounds].size.height ;

if(scrnheight == 568.0f)
{
    self.isIphone5 = true;
}
于 2013-03-20T09:32:53.160 回答