Принятие макета iPhoneX для приложения возникло много лет назад - PullRequest
0 голосов
/ 28 июня 2018

У меня есть приложение под названием BzCalendar, созданное где-то в 2011 году. Так что с Objective-C и без раскадровки. Я нахожусь в процессе преобразования в Swift с раскадровкой, еще не закончено.

Мое приложение представляет собой приложение календаря с ежедневным, еженедельным и ежемесячным просмотром. Верхняя конфигурация приложения. Когда я запускаю симулятор iPhoneX, макет сверху и снизу - это не то, чего хочет яблоко. Сначала я подумал, что это как-то связано с приложением, программно устанавливающим рамку представления. Однако, похоже, проблема заключается в том, что мое приложение всегда корректирует вид содержимого с шириной «320». Я полагаю, что когда придет iPhone5 или около того, в iOS появится конвертирование представления в ширину 320 для спасения приложения, не поддерживающего новый размер экрана.

Я проверяю размер с кодом:

override func viewDidLayoutSubviews() {
    print("frame: ", self.view.frame)
    print("safeAreaInsets", self.view.safeAreaInsets)
}

Результат: кадр: (0,0, 0,0, 320,0, 485,0) safeAreaInsets UIEdgeInsets (вверху: 44,0, слева: 0,0, снизу: 0,0, справа: 0,0)

320! Сейчас пытаюсь запустить с iPhone8 кадр: (0,0, 0,0, 320,0, 519,0) safeAreaInsets UIEdgeInsets (вверху: 20,0, слева: 0,0, снизу: 0,0, справа: 0,0)

Затем я создал новый проект на XCode9 и создал простое приложение: UITabBarController - UIViewController с тем же тестовым кодом выше: Результат: кадр: (0,0, 0,0, 375,0, 812,0) safeAreaInsets UIEdgeInsets (вверху: 44,0, слева: 0,0, снизу: 83,0, справа: 0,0)

Кто-нибудь сталкивался с подобной проблемой раньше и знает, что с этим делать? Я ожидаю 2 этапа крепления: 1) изменить конфиг xcode? использовать реальный размер экрана. 2) сделать дополнительные работы, необходимые для iPhoneX

Пожалуйста, помогите мне! Sample screen shot of the app

1 Ответ

0 голосов
/ 28 июня 2018

Я в процессе преобразования в Swift с раскадровкой, не сделано еще.

Для поддержки iPhoneX вам не нужно полностью переносить ваше приложение на раскадровки.

1) изменить конфиг xcode? использовать реальный размер экрана.

2) выполнить дополнительные работы, необходимые для iPhoneX

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

Вы можете прочитать больше о том, как это сделать, здесь: https://useyourloaf.com/blog/using-a-launch-screen-storyboard/

...