Я создаю полноэкранную галерею изображений, используя UICollectionView
. Когда пользователь поворачивает устройство, я выполнять обновления в пределах UICollectionView
Swift viewWillTransition не называется
func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
я представить эту UIViewController
модален и имею UICollectionView
занимает весь экран. В viewDidLoad
, я создаю макет потока как:
let flowLayout = UICollectionViewFlowLayout()
flowLayout.scrollDirection = .horizontal
flowLayout.minimumInteritemSpacing = 0
flowLayout.minimumLineSpacing = 0
photosCollectionView.isPagingEnabled = true
photosCollectionView.setCollectionViewLayout(flowLayout, animated: true)
Я также имеют размер, как:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return photosCollectionView.frame.size
}
Когда я повернуть мое устройство, viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
никогда не называется, что заставляет UICollectionViewLayout
не обновлять. В то время как я повернуть устройство, я не делаю получаю сообщение:
The behavior of the UICollectionViewFlowLayout is not defined because: the item height must be less than the height of the UICollectionView minus the section insets top and bottom values, minus the content insets top and bottom values.
Я прочитал в Интернете, что я могу добавить:
self.automaticallyAdjustsScrollViewInsets = false
к UIViewController
, но это уже не влияет. На вкладке UICollectionView
нет вложений содержимого или раздела.
У меня также есть super.viewWillTransition
, вызываемый внутри функции. Может ли кто-нибудь помочь мне в том, что может вызвать эту проблему?
Сообщение об ошибке говорит о «высоте элемента».Я не вижу, чтобы ваш код определял это. Не могли бы вы показать его? – matt
Когда я устанавливаю размер, это высота и ширина. Я установил 'sizeForItem' в' IndexPath' = 'photosCollectionView.frame.size'. –
Хорошо, но если вы скажете, что в неподходящее время, я могу представить, что вы можете получить размер, где одно или оба измерения больше, чем в конечном итоге становится просмотр коллекции. – matt