Пользовательская длина topLayoutGuide в контроллере контейнера
Скажем, например, я создал пользовательский контроллер вида контейнера, похожий на UINavigationController
, но в нем есть две панели навигации вверху.
Затем в контроллерах дочерних элементов я использую автозапуск, и я, конечно же, хочу, чтобы контент начинался под второй навигационной панелью.
Чтобы добиться этого автоматически, мне нужно установить верхнее руководство по макете на высоту двух комбинированных навигационных панелей.
Я предположил, что мы могли бы просто переопределить topLayoutGuide
-property, но независимо от того, что я делаю, функция topLayoutGuide
никогда не вызывается в моих настраиваемых контроллерах контейнера или контроллерах дочерних элементов.
Итак, это означает, что topLayoutGuide
является в основном бесполезным свойством, работающим ТОЛЬКО с собственными контроллерами контейнеров Apple?
Скажите, пожалуйста, я ошибаюсь!
Ответы
Ответ 1
Чтение через документы этого свойства topLayoutGuide
(readonly)
, а атрибут length также (readonly)
. В дополнение к этому в нем говорится:
Контроллер представления в контроллере представления контейнера не устанавливает этот стоимость имущества. Вместо этого контроллер контроллера контейнера ограничивает значение, указывающее:
- Нижняя часть панели навигации, если отображается панель навигации
- Нижняя часть строки состояния, если видна только строка состояния
- Верхний край представления контроллеров просмотра, если не отображается ни строка состояния, ни панель навигации.
Эти три сценария подразумевают, что он, вероятно, не настраивается, хотя я бы хотел, чтобы вас доказали неправильно. Похоже, это отличный вариант для этой функции.