背景不会在视图控制器上显示。愚蠢的问题?

时间:2013-06-03 19:47:04

标签: ios background storyboard

我有一个视图控制器,根据观看它的iPhone的大小我想要的机会。

我尝试过以下代码:

- (void)viewDidLoad
{
[super viewDidLoad];

//Chainging the background for the different screen sizes. 


if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;

if(result.height == 960) {


    UIImage *image = [UIImage imageNamed:@"Background Iphone 4.png"];
    self.view.layer.contents = (id) image.CGImage;

}

if (result.height == 1136) {

    UIImage *image = [UIImage imageNamed:@"Background Iphone 5.png"];
    self.view.layer.contents = (id) image.CGImage;


}
}

我没有收到任何错误,但同时在任何设备上都没有显示任何图片!谁能帮我?当然这应该是一个简单的问题?

我试图解读这个问题,但我没有在哪里。我正在使用故事板,我确实打开了autolayout。这可能是问题吗?

感谢您花时间看一看!

2 个答案:

答案 0 :(得分:1)

试试这个

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

所以从现在开始,你可以在标准的if / else语句中使用它:

if( IS_IPHONE_5 )
 {}
else
{}

答案 1 :(得分:0)

对浮点数等价进行一些研究。高度的变化恰好等于960或1136很小(尽管它们可能是)。您应该检查>=<=

匹配960 pr 1136的可能性特别小,因为它们是@ 2x尺寸。框架的真实尺寸为480或568。

所以,尝试使用if (height > 481)和简单的else