Swift: How to refresh UICollectionView layout after rotation of the device Swift: How to refresh UICollectionView layout after rotation of the device ios ios

Swift: How to refresh UICollectionView layout after rotation of the device


Add this function:

override func viewDidLayoutSubviews() {    super.viewDidLayoutSubviews()     myCollection.collectionViewLayout.invalidateLayout()}

When you change the orientation, this function would be called.


The better option is to call invalidateLayout() instead of reloadData() because it will not force recreation of the cells, so performance will be slightly better:

override func viewWillLayoutSubviews() {    super.viewWillLayoutSubviews()     myCollection.collectionViewLayout.invalidateLayout()}


Also you can invalidate it in this way.

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];    [self.collectionView.collectionViewLayout invalidateLayout]; }