Неправильный макет контроллера представления, который не виден - PullRequest
0 голосов
/ 29 июня 2018

У меня есть UINavigationController с UICollectionViewController в качестве первого дочернего контроллера представления, который помещает другой контроллер представления в стек.

Я вызываю invalidateLatout() в макете представления коллекции при изменении ориентации устройства, что приводит к изменению размеров ячеек. Однако он не работает, когда я перешел ко второму контроллеру представления, возможно потому, что представление коллекции не видно.

Я вижу, что вызывается invalidateLayout(), но он не изменяет размеры ячеек, когда он не виден. Есть ли способ заставить вид на макет в фоновом режиме? (Я пытался позвонить в viewWillAppear() и использовать setNeedsLayout())

1 Ответ

0 голосов
/ 01 июля 2018

Я смог заставить его работать, позвонив в viewWillAppear()

DispatchQueue.main.async {
    self.collectionViewLayout.invalidateLayout()
    self.collectionView.reloadData()
}
...