将用作启动图像fullscreend的图像显示为背景

时间:2013-06-03 21:10:08

标签: iphone ios objective-c

我试图将用作启动图像的图像显示为背景,并在启动和第一个视图之间显示淡入淡出。 我按如下方式“选择”我想要使用的图像:

NSString *defaultImageName = @"Default.png";
CGFloat imageScale = [[UIScreen mainScreen] scale];
CGSize imageSize = [[UIScreen mainScreen] applicationFrame].size;
if (imageScale > 1) {
    if (imageSize.height < 500) {
        defaultImageName = @"Default@2x.png";
    } else {
        defaultImageName = @"Default-568h@2x.png";
    }
}
backimg = [UIImage imageNamed:defaultImageName];
UIImageView *backgroundImage = [[UIImageView alloc] initWithImage: backimg];
[self.view addSubview:backgroundImage];
[self.view sendSubviewToBack:backgroundImage];

可悲的是,图像未全屏显示,显示为缩放: wrong

而不是

correct

任何人都可以帮忙吗?

更新#1:
使用[backgroundImage setFrame:CGRectMake(0, 0,self.view.frame.size.width , self.view.frame.size.height)];

解决

2 个答案:

答案 0 :(得分:2)

  1. 创建图像视图并设置框架以填满整个屏幕。
  2. 设置imageView的图像
  3. 将imageView的contentMode设置为居中。
  4. 您无需使用if语句来确定要使用的图像。只需使用[UIImage imageNamed: @"Default"]即可。拥有@2x-568h足以让UIImage使用正确的文件。

答案 1 :(得分:0)

使用图片

[[UIImage alloc]initWithContentsOfFile:[[NSBundle mainBundle] 
                           pathForResource:@"xxx" ofType:@"png"]] 

而不是

[UIImage imageNamed: @"xxx"]