1

我以适当的分辨率创建了 3 个启动图像(默认 Default@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)]; 

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

4

2 回答 2

1

尝试这个:

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

也尝试不以编程方式设置 backgroundImageView 的框架。它应该已经是您调用initWithImage:.

于 2013-03-06T04:22:32.980 回答
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);
于 2013-03-06T04:23:04.897 回答