Края UIViewController не расширяются за верхнюю / нижнюю панель во время анимации UINavigationController, если она имеет полупрозрачный вложенный вид UIToolbar

#ios #uinavigationcontroller #uitoolbar

#iOS #uinavigationcontroller #uitoolbar

Вопрос:

Я показываю полупрозрачную UIToolbar в качестве подвида UIViewController, который является дочерним элементом UINavigationController (я не использую панель инструментов UINavigationController, поскольку хочу ее подклассировать).

Все работает нормально, но есть одна вещь: когда я помещаю другой UIViewController в стек UINavigationController, следующие края UIViewController не расширяются за панель навигации, пока анимация не закончится. Та же проблема возникает при запуске всплывающей анимации следующего UIViewController.

Примечания сбоку:

  • Панель навигации полупрозрачна (по умолчанию)
  • Оба UIViewControllers настроены на расширение краев под верхней и нижней панелями
  • Проблема не воспроизводима, если UIToolbar не полупрозрачен (или если задан оттенок).
  • Та же проблема возникает, если UINavigationController находится внутри UITabBarController: следующие края UIViewController не расширяются под панелью вкладок.

Ее легко воспроизвести на устройствах / симуляторах iOS 12 и iOS 13 без кода, просто редактируя раскадровку.

Есть ли у кого-нибудь какие-либо подсказки относительно того, что для меня похоже на проблему анимации нажатия / всплывания UINavigationController?

Вот как это выглядит:введите описание изображения здесь

Комментарии:

1. Я сталкиваюсь с той же проблемой. Все еще происходит в iOS 15.5. Единственные обходные пути, которые приходят на ум, — это (а) отключить прозрачность для UIToolbar или (б) изменить фон для контроллера pushed view на .systemBackground или .systemGroupedBackground . Ни один из них не достигает желаемого эффекта в полной мере.

Ответ №1:

Я не наблюдаю ни одной такой проблемы, проверенной на iOS 13.2 в симуляторе iPhone 11. введите описание изображения здесь

Комментарии:

1. Потому что вы пропустили полупрозрачную часть UIToolbar 😉 При непрозрачной uitoolbar или вообще без uitoolbar проблема не возникает.

2. Как вы настраиваете полупрозрачную UIToolbar?

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

4. Да, тогда она полупрозрачна по умолчанию и для меня. И я не сталкивался с этой проблемой.

5. В вашем GIF-файле нет UIToolbar, вы внимательно прочитали описание? В моем GIF вы можете видеть панель UIToolbar посередине. Проблема возникает из-за полупрозрачной панели UIToolbar.