Почему панель поиска бета-версии iOS11 исчезает?

Бета-версия iOS11, похоже, сломала мою панель поиска.

В этом видео — https://youtu.be/6F1mO3l61sU — показано, что происходит в iOS11 (слева) и iOS 9.3 (справа).

Кажется, это частично связано с тем, что табличное представление справа находится в контроллере представления, который занимает правую половину экрана.

Контроллер поиска и табличное представление встроены в код. Я пробовал [self.mysearchcontroller.searchbar sizeToFit], и это, похоже, не имеет значения.


person Joe    schedule 31.07.2017    source источник
comment
Я испытываю ту же проблему. Это еще хуже при использовании приложения на iOS11, когда оно построено из XCode 8 — все представление рушится, а не просто исчезает.   -  person aronspring    schedule 10.08.2017
comment
Я заметил, что в новой бете полоса не сворачивается, а перемещается в верхнюю часть экрана и ширина как бы берется со всего экрана, а не с контроллера представления. Итак, теперь я вижу поиск, но кнопка отмены не видна, так как она находится с правой стороны экрана.   -  person Joe    schedule 11.08.2017
comment
Я бы предположил, что есть еще одна причина, по которой он использует ширину экрана вместо ширины контроллера представления. Теперь у нас есть встроенный контроллер представления, который успешно показывает и правильно использует панель поиска в iOS11.   -  person aronspring    schedule 14.08.2017


Ответы (1)


Я нашел проблему. Ранее была проблема с iOS 8, когда мы устанавливали это свойство только для устранения проблемы с макетом.

extendedLayoutIncludesOpaqueBars = true

должно быть

extendedLayoutIncludesOpaqueBars = false

Если у вас это тоже есть, либо установите для него значение «false», либо удалите строку кода. Мы больше не поддерживаем iOS 8, поэтому простое удаление этой строки кода решило мою проблему. Я полагаю, что если у вас есть это по той же причине, вы можете динамически настроить его так, чтобы он по-прежнему поддерживал iOS 8, но также поддерживал iOS 11.

person aronspring    schedule 11.08.2017
comment
Это не сработало для меня. У меня уже было extendedLayoutIncludesOpaqueBars = false . Удаление строки ничего не изменило. - person Joe; 11.08.2017