如何在4英寸屏幕上的iOS6上设置viewcontroller背景图像

时间:2014-02-01 12:36:18

标签: ios iphone objective-c ios6 ios7

我需要一个澄清我有图像大小640×1136它设置视图控制器背景全视图这在iOS 7中设置正常,因为状态栏与视图合并。

 self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"iOS-7.png"]];

enter image description here

但是在iOS 6中我无法设置640×1136的大小这个图像的底部大小是隐藏的。如何在iOS 6中的视图控制器背景上处理图像

enter image description here

我如何解决问题

   UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
    imageView.contentMode = UIViewContentModeScaleToFill;
    [imageView setImage:[UIImage imageNamed:@"iOS-7.png"]];
   // self.view.backgroundColor = [UIColor colorWithPatternImage:imageView.image];

    [self.view addSubview:imageView];

如果我使用上面的代码只能正常工作。感谢@Greg的回答,但我需要知道为什么在set self.view backgroundColor

上会出现屏幕问题

2 个答案:

答案 0 :(得分:1)

在imageView设置比例模式下设置图像时:

imageView.contentMode = UIViewContentModeScaleAspectFit;

这应该缩放图像以适合视图的完整大小。

//扩展

使用colorwithpattern时......你可以使用内容模式= UIViewContentModeScaleAspectFit创建具有视图大小的UIImageView添加图像,然后调用

UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[imageView setImage:YOURIMAGE];
`self.view.backgroundColor = [UIColor colorWithPatternImage:imageView.image];`

答案 1 :(得分:1)

因此,iOS 7默认情况下将状态栏切换为半透明,并允许内容视图显示在其后面。这是不是 iOS 6的默认值。因此,您看到正常视图从状态栏下方开始,并且正如您(不是)正确缩放视图一样,它被剪切了。 / p>

您可以在iOS 6及更低版本中获得类似的效果。将状态栏设置为半透明:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent];

然后,对于您拥有的每个视图控制器,设置:

myViewController.wantsFullScreenLayout = YES;

这会导致您的视图延伸到半透明状态栏下方,类似于iOS 7的风格。