Почему iPhone X игнорирует UIEdgeInsets для UICollectionView?

avatar
Khoury
8 апреля 2018 в 06:59
441
1
0

У меня есть код для моего collectionView, который настраивает содержимое так, чтобы оно располагалось под панелью навигации.

        collectionView.contentInsetAdjustmentBehavior = .never
        let tabBarHeight = self.tabBarController?.tabBar.bounds.height
        let navBarHeight = self.navigationController?.navigationBar.bounds.height
        self.edgesForExtendedLayout = UIRectEdge.all
        self.collectionView.contentInset = UIEdgeInsets(top: navBarHeight!  left: 0.0, bottom: tabBarHeight!  right: 0.0)

Это хорошо работает на любом другом устройстве с iOS 11, кроме iPhone X, на iPhone X контент находится за панелью навигации и панелью инструментов при запуске приложения.

Есть ли что-то, что мне не хватает конкретно для iPhone X?

Спасибо

Источник
Chanchal Chauhan
9 апреля 2018 в 06:31
0

Проверьте ограничения просмотра коллекции. Возможно, это связано с superview, а не с SafeArea или Top Layout guide.

Khoury
10 апреля 2018 в 10:26
0

Вы правы, ограничения связаны с супервизором. Я изменил их на верхнее руководство по макету, но теперь, когда я прокручиваю представление коллекции, вы не видите размытия ячеек за панелью навигации и панелью инструментов?

Ответы (1)

avatar
Chanchal Chauhan
10 апреля 2018 в 13:05
1

Я думаю, вы забыли рассчитать высоту строки состояния. До iPhone X высота строки состояния составляла 20 пунктов, а в iPhoneX — 44 пункта. Вот почему вы не можете видеть полную ячейку.

Для этого добавьте свои ограничения из супервизора и напишите следующий код:

    cv.contentInsetAdjustmentBehavior = .never
    let tabBarHeight = self.tabBarController?.tabBar.bounds.height ?? 0
    let statuBarHeight = UIApplication.shared.statusBarFrame.height
    let navBarHeight = self.navigationController?.navigationBar.bounds.height ?? 0
    self.edgesForExtendedLayout = UIRectEdge.all
    cv.contentInset = UIEdgeInsets(top: navBarHeight+statuBarHeight, left: 0.0, bottom: tabBarHeight, right: 0.0)

Надеюсь, это поможет :)

Khoury
11 апреля 2018 в 00:30
0

Да! Ты удивительный! Работает отлично! :)