Пользовательская длина topLayoutGuide в контроллере контейнера

Скажем, например, я создал пользовательский контроллер вида контейнера, похожий на UINavigationController, но в нем есть две панели навигации вверху.

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

Чтобы добиться этого автоматически, мне нужно установить верхнее руководство по макете на высоту двух комбинированных навигационных панелей.

Я предположил, что мы могли бы просто переопределить topLayoutGuide -property, но независимо от того, что я делаю, функция topLayoutGuide никогда не вызывается в моих настраиваемых контроллерах контейнера или контроллерах дочерних элементов.

Итак, это означает, что topLayoutGuide является в основном бесполезным свойством, работающим ТОЛЬКО с собственными контроллерами контейнеров Apple?

Скажите, пожалуйста, я ошибаюсь!

Ответы

Ответ 1

Чтение через документы этого свойства topLayoutGuide (readonly), а атрибут length также (readonly). В дополнение к этому в нем говорится:

Контроллер представления в контроллере представления контейнера не устанавливает этот стоимость имущества. Вместо этого контроллер контроллера контейнера ограничивает значение, указывающее:

  • Нижняя часть панели навигации, если отображается панель навигации
  • Нижняя часть строки состояния, если видна только строка состояния
  • Верхний край представления контроллеров просмотра, если не отображается ни строка состояния, ни панель навигации.

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