Как добиться совместимости в отношении ограничений автоматического макета для версии iOS12.1 - PullRequest
0 голосов
/ 07 мая 2019

У моего приложения есть «Панель поиска» внутри UIView, названная «Контейнер для панели поиска», которая снова находится под панелью навигации.На Interface Builder автоматическом макете constraints устанавливаются между строкой поиска и UIView, как показано ниже:

  1. Первый элемент: Панель поиска. Отношение: равно Второй элемент: Контейнердля строки поиска Верхняя точка: 0 Приоритет: 1000 Множитель: 1

  2. Первый элемент: Панель поиска. Отношение ведущих: равно Второй элемент: Контейнер для SearchBar. Константа ведущего: 0 Приоритет: 1000Множитель: 1

  3. Первый элемент: бар поиска. Отношение трейлинга: равно Второй элемент: контейнер для константы SearchBar.Trailing: 0 Приоритет: 1000 Множитель: 1

«Контейнер для панели поиска» (UIView) имеет ширину: 480 и высоту: 44. Авторазмер для UIView установлен для растяжения и позиционирования относительно всех направлений.Ширина строки поиска также равна: 480.

До IOS 10 UIView и панель поиска растягивались относительно разрешения экрана устройства.Однако для версии IOS 12.1 «Панель поиска» становится невидимой во время выполнения.После того, как я отладил и проверил размеры, ширина как UIView, так и его дочерняя 'Панель поиска' устанавливаются в 0 во время выполнения.При удалении ограничений автоматического размещения отображается только строка поиска, но она не растягивается в соответствии с разрешением экрана.

Нужна помощь в решении этой проблемы.

РЕДАКТИРОВАТЬ: контейнер UIView находится между кнопками назад / вперед внутри панели навигации.По этой причине в контейнере UIView установлено автоматическое изменение размера вместо установки ограничений автоматического макета.Так как он находится между двумя элементами кнопки, я думаю, что его нельзя установить с ограничением в начале и в конце своего родителя.

1 Ответ

0 голосов
/ 07 мая 2019

«Контейнер для панели поиска» (UIView) имеет ширину: 480 и высоту: 44. Авторазмер для «UIView» настроен на растяжение и позиционирование относительно всех направлений.

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


Кажется, это ваш заголовок элемента навигации. Это объясняет, почему это работало в iOS 10, а не в iOS 11. Теперь для представления заголовка необходимо использовать автоматическое расположение с внутренними ограничениями ширины и высоты, чтобы придать ему размер. Вы не сможете больше динамически изменять его размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...