Соотношение сторон фонового изображения для iPhone X

У меня есть приложение, в котором есть изображение с изображениями 3 размеров @1, @2, @3 в качестве фонового изображения.

Я внедряю экран запуска в свой проект, чтобы приложение отображалось в полноэкранном режиме на iPhone X. Как вы знаете, ресурс экрана запуска имеет размер для iPhone X, поэтому экран запуска выглядит нормально. Однако мое фоновое изображение выглядит не очень хорошо, потому что соотношение сторон @ 3s предназначено для устройств Plus, а не для iPhone X.

Где я должен добавить изображение правильного размера?

РЕДАКТИРОВАТЬ: Мой вопрос не об изображении экрана запуска. Речь идет о фоновом изображении, которое я использую в обычном ViewController.


person Mr Some Dev.    schedule 30.11.2017    source источник
comment
Пожалуйста, сделайте снимок экрана, когда появляется экран-заставка во время запуска приложения, и прикрепите его сюда, чтобы лучше понять, что происходит.   -  person Kiran Jasvanee    schedule 30.11.2017
comment
Извините, я не могу поделиться скриншотом, потому что это проект моей компании, который запрещен :( Кстати, зачем вам заставка? У меня проблема с фоновым изображением, а не заставкой   -  person Mr Some Dev.    schedule 30.11.2017


Ответы (2)


Вместо того, чтобы использовать изображение в качестве экрана запуска, попробуйте использовать раскадровку запуска.

Это может содержать один контроллер представления, который содержит UIImageView с contentMode = .aspectFill. Это обрежет часть изображения с обеих сторон, но это может быть приемлемо для вас.

person Ashley Mills    schedule 15.01.2018
comment
Извините, если я не понял, но мой вопрос касается фонового изображения, которое я использую в обычном ViewController. Я уже использую LaunchImage как заставку. - person Mr Some Dev.; 15.01.2018

Это не лучший подход, но я решил проблему, создав еще один ресурс изображения и поместив фоновое изображение iPhone X в его область @3. Затем в коде я проверяю, является ли это экраном iPhone X, если да, я использую актив изображения с фоном x, если другой использует актив изображения по умолчанию.

    - (void) setBackgroundImage{
    // Load launch image
    NSString *launchImageName;
    if ([UIScreen mainScreen].bounds.size.height == 812){
        launchImageName = @"PublicBackground_X"; // iPhone X
    }
    else {
        launchImageName = @"PublicBackground"; // Other iPhones
    }

    UIImage *image = [UIImage imageNamed:launchImageName];
    [self.backgroundImage setImage: image];
}

РЕДАКТИРОВАТЬ: я не знаю, почему у меня плохая репутация. Ни одно из других решений не сработало для меня. Обрезка изображения недопустима, если у вас правильное разрешение.

person Mr Some Dev.    schedule 15.01.2018