UICollectionView под панелью навигации, но не под панелью вкладок - PullRequest
0 голосов
/ 01 мая 2020

У меня есть UICollectionView, который я хочу go под панелью навигации. По сути, я хочу, чтобы он игнорировал всю верхнюю безопасную область, но все же хотел, чтобы он соблюдал нижнюю безопасную область, поскольку там есть панель вкладок. Вот как это выглядит в настоящее время:

enter image description here

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

Если я установил collectionView.contentInsetAdjustmentBehavior = .never, то верхняя часть работает отлично, но тогда нижняя часть содержимого представления коллекции скрыта панелью вкладок - вы не можете прокрутить полностью на дно так сказать. Таким образом, я должен вручную добавить нижнюю вставку снова? Как узнать высоту панели вкладок, включая любую нижнюю безопасную область на устройствах с домашней панелью? Или есть ли лучший способ заставить просмотр коллекции игнорировать только верхнюю область для настройки вставки содержимого?

1 Ответ

0 голосов
/ 01 мая 2020

Вам просто нужно вручную установить нижнюю вставку содержимого представления коллекции, после настройки поведения корректировки на .never.

Можно найти правильную вставку (включая панель вкладок и любую домашнюю панель). в safeAreaInsets.

collectionView.contentInsetAdjustmentBehavior = .never
collectionView.contentInset.bottom = collectionView.safeAreaInsets.bottom

Это нужно сделать в тот момент, когда установлен safeAreaInsets, например viewDidLayoutSubviews.

Насколько я помню Раньше это было возможно, просто настраивая свойство edgesForExtendedLayout содержащего контроллера представления, но это было прекращено, когда в iOS 11, как я полагаю, были введены безопасные области.

enter image description here

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