У меня возникла странная ситуация, когда UICollectionView
меняет размер, если он загружен 0 ячейками в первый раз. Если он загружен с более чем 0 ячейками, первый раз он сохраняет правильный размер. Такое поведение не имеет для меня никакого смысла, и я не знаю, как его исправить.UICollectionView изменение размера при пустом
Я использую вид с разбивкой по страницам, похожий на то, что описано here.
Это означает, что я устанавливаю размер ячейки, чтобы быть таким же, как размер зрения коллекции:
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return collectionView.bounds.size;
}
Как ни странно я получаю сообщение об ошибке:
2016-02-23 14:27:10.574 the behavior of the UICollectionViewFlowLayout is not defined because:
2016-02-23 14:27:10.574 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.
2016-02-23 14:27:10.575 The relevant UICollectionViewFlowLayout instance is <UICollectionViewFlowLayout: 0x7fa90ac86d30>, and it is attached to <UICollectionView: 0x7fa90c84da00; frame = (0 0; 414 150); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7fa90ac88450>; layer = <CALayer: 0x7fa90ac85b70>; contentOffset: {0, 0}; contentSize: {828, 187}> collection view layout: <UICollectionViewFlowLayout: 0x7fa90ac86d30>.
2016-02-23 14:27:10.575 Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger.
В основном говорил мне, что высота ячейки больше, чем высота представления коллекции, что на самом деле не имеет никакого смысла, поскольку я устанавливаю размер ячейки таким же, как и представление коллекции.
Мне кажется, что просмотр коллекции меняет свою высоту в зависимости от того, пуста она или нет, что для меня не имеет никакого смысла. Кто-нибудь знает, как я могу это исправить или какие-либо предложения о том, как я могу обойти это?
UPDATE:
Похоже, я не полностью понять проблему, когда я задал этот вопрос. Я думал, что проблема связана с тем, что у меня не было никаких ячеек при первом загрузке коллекции. Поэтому я подумал, что простым решением было бы поместить пустую ячейку-заполнитель при загрузке содержимого. К сожалению, размер ячейки все еще запутан, когда я перезаряжаю данные. Таким образом, проблема заключается в том, что размер является правильным только при первом загрузке коллекции и при любой последующей перезагрузке размер становится неправильным.
Что касается contentinset of uicollectionview? –