Подтвердить что ты не робот

UICollectionView не работает, когда extendedLayoutIncludesOpaqueBars имеет значение true

У меня есть UIViewController, который расширяет UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout.

override func viewDidLoad() {
    super.viewDidLoad()
    collectionView.delegate = self
    collectionView.dataSource = self
    self.extendedLayoutIncludesOpaqueBars = true

}

UICollectionviewDelegate и методы DataSource не вызываются, поэтому UICollectionview кажется пустым. Даже если я вызываю перезагрузку данных, методы DataSource все еще называются arent.

Когда я удаляю последнюю строку, все работает нормально, за исключением того, что есть пространство под viewController.

4b9b3361

Ответ 1

edgesForExtendedLayout

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

Вам нужно установить один из этих двух

self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;

ИЛИ

self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = YES;

Возможно, это поможет вам.