我在我的应用中添加了Default-568h@2x.png启动图像。应用程序需要在“真实”启动图像后显示第二个启动图像。因为UIImage imageNamed:方法不会像自动加载视网膜图像那样自动加载较高的图像,所以我添加了一些代码来检测屏幕大小并显示正确的图像:
-(void)pickRightImage
{
CGSize result = [[UIScreen mainScreen] bounds].size;
UIImageView *imgv = [self loadingImage];
UIImage *img;
if(result.height == 480)
{
img = [UIImage imageNamed:@"loading_screen.png"];
} else if([UIScreen mainScreen].scale == 2.f && result.height == 568) {
// iPhone 5
img = [UIImage imageNamed:@"loading_screen-568h@2x.png"];
}
[imgv setImage:img];
}
imageView占用NIB中的整个屏幕,名为MainWindow,我选择了名为“启动时全屏”的复选框但是,图像从不占用整个屏幕。 (虽然发射图像确实如此。)第二个图像是字母框,就像它是一个较小的图像,我从来没有包括高大的发射图像。
有没有以编程方式在4英寸iphone5上显示全屏图像?为什么我的图像总是调整大小?
答案 0 :(得分:4)
[UIImage imageNamed:]
会为您添加@2x
。所以你应该指定
img = [UIImage imageNamed:@"loading_screen-568h.png"];
测试4英寸屏幕和Retina标准(比例= 2)也没用。所有具有4英寸屏幕(568像素高)的设备都是Retina显示屏,因此您可以假设如果高度== 568,用户有iPhone 5:替换
if ([UIScreen mainScreen].scale == 2.f && result.height == 568)
与
if ([UIScreen mainScreen].bounds.size.height == 568)
你很好。
答案 1 :(得分:1)
我在主视图控制器上测试了这个。另外,在Target>摘要>状态栏>可见性检查“在应用程序启动期间隐藏”。
- (void)viewDidLoad
{
[super viewDidLoad];
UIImageView *iv = [[UIImageView alloc] initWithFrame:self.view.bounds];
iv.image = [UIImage imageNamed:@"Second-default568h@2x.png"];
[self.view addSubview:iv];
}