我以适当的分辨率创建了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)];
它似乎表现得像我现在想要的那样。
答案 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);