Кнопка «Назад» неправильно выровнена в iOS 11

Мы начали работать над нашим проектом с Xcode 8.3, и все было хорошо до iOS 10, но когда мы запускаем то же самое приложение в iOS 11, кнопка «Назад» не выровнена, как предполагалось, как вы видите на изображении ниже.

Снимок экрана iOS 11

Но с iOS 10 он выровнен правильно

Снимок экрана iOS 10

И это ошибка ограничения макета, которую мы получаем

(
"<NSLayoutConstraint:0x600000288200 _UIModernBarButton:0x7f7ef5c87f10.bottom == UILayoutGuide:0x6000005a0380'UIViewLayoutMarginsGuide'.bottom + 64.5   (active)>",
"<NSLayoutConstraint:0x600000287f30 V:[_UIModernBarButton:0x7f7ef5c87f10]-(>=0)-|   (active, names: '|':_UIButtonBarButton:0x7f7ef5c86e60 )>",
"<NSLayoutConstraint:0x600000282030 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x6000005a0380'UIViewLayoutMarginsGuide']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7f7ef5c86e60 )>"

)


person i70ro    schedule 13.10.2017    source источник


Ответы (2)


Для меня это потому, что я использую некоторые приемы, как показано ниже, чтобы скрыть заголовок

UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -1000), for: .default)

Мы не должны этого делать, это не работает на iOS 11 и вызовет множество проблем с автоматическим макетом, как вы пишете. Поэтому проверьте, есть ли у вас appearance на кнопке «Назад».

Если вы действительно хотите скрыть текст на кнопке «Назад», вам следует сделать https://stackoverflow.com/a/46889050/1418457

person onmyway133    schedule 23.10.2017

person    schedule
comment
при удалении условия else для устройств до iOS 11 этот код все равно работает. так могу ли я узнать, что важно для другого состояния? - person g212gs; 09.02.2018
comment
для менее чем ios 11 - person Prabhjot Singh Gogana; 09.02.2018
comment
Да, это я понимаю из приведенного выше кода, но когда я удаляю код else, устройства iOS 10 по-прежнему выглядят правильно. - person g212gs; 12.02.2018
comment
это здорово, я проверю это для всех ios (которые больше, чем ios7). если сработает с одним кодом то обязательно удалю другой - person Prabhjot Singh Gogana; 13.02.2018