0

我正在通过 [UIImage imageNamed:@"LaunchImage"] 访问 LaunchImage,但无论如何它总是给我 640x960。它显然似乎没有检测到我正在使用哪部手机,它只是抛出 640x960。

我可以检查屏幕尺寸并为每个设备设置特定的图像名称,但这并不理想。必须有一种简单的方法来完成这项工作。有人知道吗?

4

2 回答 2

0

关键是该Info.plist文件包含有关使用哪个启动图像的信息。下面的方法将从 中找到该名称Info.plist,然后您只需从[UIImage imageNamed:@""]方法中查询它。

- (NSString *)splashImageNameForOrientation:(UIInterfaceOrientation)orientation {
    CGSize viewSize = self.view.bounds.size;
    NSString* viewOrientation = @"Portrait";
    if (UIDeviceOrientationIsLandscape(orientation)) {
        viewSize = CGSizeMake(viewSize.height, viewSize.width);
        viewOrientation = @"Landscape";
    }

    NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    for (NSDictionary* dict in imagesDict) {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
            return dict[@"UILaunchImageName"];
    }

    if (imagesDict.count > 0) {
        return [imagesDict firstObject][@"UILaunchImageName"];
    }
    return nil;
}
于 2016-05-27T04:48:20.800 回答
0

参考这个网址:

支持 iOS6 和 iOS7 的启动屏幕 - 强制启动屏幕

或者

您在 Assets.xcassets 中添加启动屏幕:您看到的图像大小如下图所示:

在此处输入图像描述

于 2016-05-27T05:48:34.950 回答