使用启动图像作为ViewController背景图像

时间:2013-03-06 04:15:31

标签: iphone ios ios6

我以适当的分辨率创建了3个启动图像(默认默认值@ 2x Default-568 @ 2x)。我想将这些图像用作我初始View Controller的背景图像。

然而,当我设计我的发布图像时,我考虑了状态栏并将该区域留空。当我尝试使用以下代码将视图控制器的背景图像设置为启动图像时,我的启动图像从状态栏的底部开始,空白区域可见。基本上,我的640x1136发布图像被挤压到640x1096空间。做正在尝试的事情的正确方法是什么?

   UIImage *backgroundImage = [[UIImage alloc]init];
if ([[UIScreen mainScreen] bounds].size.height == 568) {
    backgroundImage = [UIImage imageNamed:@"Default-568h@2x"];
}
else{
    backgroundImage = [UIImage imageNamed:@"Default"];
}

UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
[backgroundImageView setFrame:[[self view] bounds]];
[[self view] addSubview:backgroundImageView];

更新

我换了:

[backgroundImageView setFrame:[[self view] bounds]];

使用:

[backgroundImageView setFrame:CGRectMake(0 ,-20,self.view.frame.size.width , self.view.frame.size.height+20)]; 

它似乎表现得像我现在想要的那样。

2 个答案:

答案 0 :(得分:1)

试试这个:

[self.view setBackgroundColor:[UIColor colorWithPatternImage:backgroundImage]];

也尝试不以编程方式设置backgroundImageView的框架。它应该是您拨打initWithImage:时的大小。

答案 1 :(得分:0)

使用不包含空白区域的未经编辑的图像。这样可以正常工作。

使用以下代码检查替换此[backgroundImageView setFrame:[[self view] bounds]];

  int statusBarHeight = statusBar.frame.size.height;

  backgroundImageView.frame = CGRectMake(0 ,statusBarHeight,self.view.frame.size.width , self.view.frame.size.height-statusBarHeight);