获得正确的LaunchImage而不是iPhone4

时间:2016-05-27 04:16:47

标签: ios uiimage launchimage

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

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

请参阅此网址:

Launch screens supporting iOS6 and iOS7 - forced to splash screen

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

enter image description here