У меня есть UICollectionView с UICollectionViewFlowLayout. Я также реализую протокол UICollectionViewDelegateFlowLayout.
В моем источнике данных у меня есть куча UIViewControllers, которые отвечают на собственный протокол, поэтому я могу запросить их размер и некоторые другие вещи.
В делегате FlowLayout, когда он запрашивает sizeForItemAtIndexPath:, я возвращаю размер элемента, который я получаю из своего протокола. ViewControllers, которые реализуют мой протокол, возвращают другой размер элемента в зависимости от ориентации.
Теперь, если я изменяю ориентацию устройства с портрета на пейзаж, нет проблем (элементы больше в ландшафте), но если я изменю его, я получу это предупреждение:
the item width must be less that the width of the UICollectionView minus the section insets left and right values.
Please check the values return by the delegate.
Он по-прежнему работает, но мне не нравится получать предупреждения, поэтому, возможно, вы можете сказать мне, что я делаю неправильно. Также есть еще одна проблема. Если я не укажу, что collectionViews коллекции collectionViewLayout недействителен в willAnimateRotationToInterfaceOrientation: sizeForItemAtIndexPath: никогда не вызывается.
Надеюсь, ты поймешь, что я имею в виду. Если вам нужна дополнительная информация, дайте мне знать:)