Как получить правильный стартовый образ в iOS9 программно?

Я добавил изображения разного размера в актив LaunchImage. Пока я использую этот код

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

Он вернул launchImage с неправильным размером, точно возвращает @2x png. Когда я использую iphone6 ​​plus, ожидаемое изображение будет @3x png. Любая идея о получении правильного изображения?

1 ответ

После долгих поисков я обнаружил, что LaunchImages являются особыми и не являются каталогом ресурсов на устройстве. И имя файла launchImage для всех устройств iOS в списке:

  • LaunchImage-568h@2x.png
  • LaunchImage-700-568h@2x.png
  • LaunchImage-700-Landscape@2x~ipad.png
  • LaunchImage-700-Пейзаж ~ ipad.png
  • LaunchImage-700-Portrait@2x~ipad.png
  • LaunchImage-700-портрет ~ ipad.png
  • LaunchImage-700@2x.png
  • LaunchImage-Landscape@2x~ipad.png
  • LaunchImage-Пейзаж ~ ipad.png
  • LaunchImage-Portrait@2x~ipad.png
  • LaunchImage-портрет ~ ipad.png
  • LaunchImage.png
  • LaunchImage@2x.png
  • LaunchImage-800-667h@2x.png (iPhone 6)
  • LaunchImage-800-Portrait-736h@3x.png (iPhone 6 Plus Portrait)
  • 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];
Другие вопросы по тегам