Безопасная зона iPhone X находится под непрозрачной панелью инструментов

Я не могу правильно ограничить вид на iPhone X так, чтобы он находился над нижней непрозрачной панелью инструментов.

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

Скриншот iPhone X

В то время как для других моделей и размеров iPhone вид корректно отображается над панелью инструментов:

Скриншот раскадровки iPhone SE

Вот ограничения, которые я добавил:

Ограничения

Может ли кто-нибудь любезно объяснить мне, что мне делать?


person Alexander Mayatsky    schedule 12.10.2017    source источник
comment
см., что это может помочь вам 46441988/autoresizing-for-iphone-x/   -  person Anbu.Karthik    schedule 12.10.2017


Ответы (3)


Я решил проблему, выбрав «Расширить края под непрозрачными полосами» для рассматриваемого UIViewController:

При включенной опции: IB расширяет края отмечены галочкой

Если опция отключена: IB расширять края не отмечены

Другой вариант — использовать полупрозрачную панель инструментов, как упомянул @Silmaril в другом ответе на вопрос.

person Alexander Mayatsky    schedule 19.10.2017
comment
Вы уверены, что не изменили стиль панели инструментов на полупрозрачный? Потому что я все еще могу воспроизвести вашу ошибку, когда панель инструментов не является полупрозрачной. Это означает, что включение Extend edges under Opaque Bars не является исправлением - person Silmaril; 19.10.2017

Это определенно ошибка iOS.

Попробуйте использовать полупрозрачную панель инструментов, потому что ошибка не воспроизводится, когда панель инструментов полупрозрачная.

Другой вариант — добавить панель инструментов непосредственно на контроллер представления

person Silmaril    schedule 18.10.2017
comment
Верхняя часть безопасной области — это верхняя часть экрана, поэтому метка будет выровнена под строкой состояния. Однако мне нужно, чтобы ярлык был внизу. - person Alexander Mayatsky; 19.10.2017
comment
Ой, извини. Я перепутал в голове безопасную зону и планировку. Кстати, я просто не вижу панель инструментов на ваших скриншотах. Я только что попробовал создать тестовый проект из шаблона Single View App. И у меня нет вашей проблемы на iPhone X. Что такое черные области на ваших скриншотах? у меня тоже их нет - person Silmaril; 19.10.2017
comment
похоже, вы использовали смоделированные показатели. В данном случае это просто баг Interface Builder. Попробуйте запустить приложение на симуляторе iPhone X, когда представлена ​​настоящая панель инструментов. Если там нет другой ошибки (на этот раз ошибка в iOS), вы не должны сталкиваться с этой проблемой. - person Silmaril; 19.10.2017
comment
Конечно проблема присутствует на симуляторе. Черная область — это имитация непрозрачной панели инструментов, это указано в описании. Просто добавьте любую кнопку на нижнюю панель инструментов, используя свойство toolbarItems UIViewController, и вы увидите, что эта панель инструментов будет частично закрывать представление точно так же, как оно показано в IB. - person Alexander Mayatsky; 19.10.2017
comment
Свойство toolbarItems не добавляет представление панели инструментов в контроллер представления. Цитата из документации This property contains an array of UIBarButtonItem objects and works in conjunction with a UINavigationController object. Используете ли вы навигационный контроллер? - person Silmaril; 19.10.2017
comment
О, да, извините за это, я действительно добавляю их в навигационный контроллер. - person Alexander Mayatsky; 19.10.2017
comment
Смотрите мой ответ, как-то это помогло мне с проблемой. - person Alexander Mayatsky; 19.10.2017

использовать размер по размеру содержимого ⌘ (+) = введите здесь описание изображения

person Habib Alejalil    schedule 14.10.2017