1

我已将不同尺寸的图像添加到 LaunchImage 资产中。当我使用这段代码时

UIImage *launchImage = [UIImage imageNamed:@"LaunchImage"]

它返回了大小错误的launchImage,完全返回@2x png。当我使用 iphone6 plus 时,期望的图像是@3x png。关于获得正确图像的任何想法?

4

1 回答 1

5

经过大量搜索,我发现 LaunchImages 很特别,实际上并不是设备上的资产目录。所有 iOS 设备的 launchImage 文件名列表如下:

  • LaunchImage-568h@2x.png
  • LaunchImage-700-568h@2x.png
  • LaunchImage-700-Landscape@2x~ipad.png
  • LaunchImage-700-Landscape~ipad.png
  • LaunchImage-700-Portrait@2x~ipad.png
  • LaunchImage-700-Portrait~ipad.png
  • LaunchImage-700@2x.png
  • LaunchImage-Landscape@2x~ipad.png
  • LaunchImage-横向~ipad.png
  • LaunchImage-Portrait@2x~ipad.png
  • LaunchImage-Portrait~ipad.png
  • 启动图像.png
  • LaunchImage@2x.png
  • LaunchImage-800-667h@2x.png (iPhone 6)
  • LaunchImage-800-Portrait-736h@3x.png (iPhone 6 Plus 纵向)
  • LaunchImage-800-Landscape-736h@3x.png(iPhone 6 Plus 横向)

因此,如果您想为 iphone 设备获取正确的启动图像,只需使用以下代码:

    NSString *launchImageName;
    if([UIScreen mainScreen].bounds.size.height > 667.0f) {
        launchImageName = @"LaunchImage-800-736h"; // iphone6 plus
    }
    else if([UIScreen mainScreen].bounds.size.height > 568.0f) {
        launchImageName = @"LaunchImage-800-667h"; // iphone6
    }
    else if([UIScreen mainScreen].bounds.size.height > 480.0f){
        launchImageName = @"LaunchImage-700-568h";// iphone5/5plus
    } else {
        launchImageName = @"LaunchImage-700"; // iphone4 or below
    }
    UIImage *launchImage = [UIImage imageNamed:launchImageName];
于 2015-10-14T10:22:22.883 回答