0

我在“viewDidLoad”中使用此代码来检查应用程序是否在 iPhone 5 或普通 iPhone 上运行。

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        // iPhone Classic

        [_backgr setImage:[UIImage imageNamed:@"usefull_i4.png"]];
        [scrollView setFrame:CGRectMake(16, 69, 291, 349)];
        [_backgr setFrame:CGRectMake(0, 0, 320, 480)];


    }
    if(result.height == 568)
    {
        // iPhone 5
        [_backgr setImage:[UIImage imageNamed:@"usefull_i5.png"]];
        [scrollView setFrame:CGRectMake(15, 111, 295, 349)];
        [_backgr setFrame:CGRectMake(0, 0, 320, 568)];

    }
}

它不起作用。:( 仅当我将 !here 从 iPhone 3.5 更改为 iPhone 4 时,此代码才有效。1

我也将此代码用于另一个 ViewController 并且效果很好。我不使用自动布局。

4

1 回答 1

1

Try this macro : (in .pch file)

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

Example :

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    if(IS_IPHONE_5)
    {
         // code
    }
}
于 2013-03-22T05:01:40.043 回答