Обновление приложения для iPhone x — без панели навигации

В одном из моих приложений я не использовал панель навигации для заголовка. Я использовал UIView высотой 64.

Я только что попытался разработать одно экранное приложение в xCode 9 для поддержки iPhone x.

В раскадровке я использовал UIView с фиксированной высотой 64 и меткой, которая находится в центре UIView.

На iPhone 8 и iPhone 8+ все работает нормально, но на iPhone x дизайн выглядит не очень хорошо.

Фиксированное представление выглядит маленьким на iPhone x.

Пожалуйста, проверьте изображения ниже

iPhone x iPhone 8

Поскольку я начал разрабатывать для iPhone x другое приложение, панель навигации становится больше в iPhone x (около 145 пикселей).

Как я могу управлять дизайном в iPhonex без панели навигации?


person Er.Shreyansh Shah    schedule 03.10.2017    source источник
comment
Я не вижу ничего плохого в вашем изображении, пожалуйста, опубликуйте правильный дизайн, который вы считаете.   -  person ovo    schedule 03.10.2017
comment
@ovo: - Отредактированный вопрос.   -  person Er.Shreyansh Shah    schedule 03.10.2017
comment
Как вы раньше справлялись с изменением размера строки состояния (например, во время разговора)?   -  person Ashley Mills    schedule 03.10.2017
comment
Просто для протокола, именно по таким причинам важно придерживаться элементов управления, которые дает вам Apple. То же самое произошло с iOS 7, Apple изменила пользовательский интерфейс, чтобы разработчики могли рисовать под строкой состояния. Если вы придерживаетесь встроенных элементов управления, Apple проделала большую работу, чтобы сделать их максимально плавными с автоматическим использованием новых стилей. На ваших изображениях нет ничего, что нельзя было бы сделать с помощью панели навигации.   -  person Simon McLoughlin    schedule 03.10.2017
comment
Привет, Аяз, следуйте инструкциям здесь stackoverflow.com/questions/ 44492404/безопасная область-xcode-9   -  person Muhammad Noman    schedule 12.10.2017
comment
Пожалуйста, обратитесь к моему ответу на Создать пользовательскую панель навигации совместим с iPhoneX   -  person Mehul Sojitra    schedule 08.05.2018


Ответы (2)



<сильный>1. Добавить подпредставление в ViewController

Начнем с добавления подпредставления в контроллер представления. Это подвид будет нашей пользовательской панелью навигации. Давайте настроим автоматический макет соответствующим образом. Настройка ограничений автоматического макета на пользовательской панели навигации

NavBar.Height = 44
NavBar.Top = Safe Area.Top
NavBar.Leading = Safe Area.Leading
NavBar.Trailing = Safe Area.Trailing

ограничения существуют между настраиваемой панелью навигации и безопасной областью

<сильный>2. Добавить ImageView в качестве фона

Возьмите изображение, отображающее наше фоновое изображение. Это изображение должно быть за нашим пользовательским представлением для панели навигации. Настройка ограничений автоматического макета для представления изображения.

Image View.Top = Superview.Top
Image View.Leading = Superview.Leading
Image View.Trailing = Superview.Trailing
Image View.Bottom = NavBar.Bottom (For this drag from imageview to customview and choose last baseline constraint)

Ведущие и замыкающие ограничения находятся между представлением изображения и его суперпредставлением. Для нижнего ограничения мы установим его между NavBar.Bottom и Image View.Bottom. Это делается для того, чтобы изображение перекрывало всю настраиваемую панель навигации.

<сильный>3. Заключительный шаг

A. Установите чистый цвет пользовательского представления B. Установите изображение в представлении изображения C. Убедитесь, что режим содержимого представления изображения установлен на «Заполнение пропорций» и установлен флажок «Обрезать по границам».

<сильный>4. Модульный тест Протестируйте это на всех устройствах от iPhone 5 до iPhone X. На всех устройствах, кроме iPhone X, наше пользовательское представление с изображением составляет 64 пикселя, а в iPhone X также используется безопасная область.

Ведет себя так же, как панель навигации по умолчанию.

person Mayank Jain    schedule 11.12.2017