Я использую UICollectionView программно.
Я установил его как:
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 3000) collectionViewLayout:flowLayout];
В моем UICollectionViewFlowLayout
есть вставка раздела, как:
flowLayout.sectionInset = UIEdgeInsetsMake(20.0, 20.0, 100.0, 20.0);
У меня также есть только 1 раздел.
Я установил высоту в 3000, чтобы увидеть, будет ли просмотр коллекции прокручиваться, но это не так. Я устанавливаю его так, поскольку просмотр коллекции не прокручивается вверх или вниз, когда я вставляю новые элементы.
UICollectionView
подклассифицирован из UIScrollView
, что означает, что я могу сохранить сброс размера содержимого прокрутки. Будет ли это работать должным образом?
Единственная проблема заключается в том, что это будет работать, если я знаю размеры всех элементов, включая количество элементов в каждой строке.
Если каждый элемент имел другой размер, как бы узнать размер каждой строки? Мне нужно, чтобы добавить все размеры строк и увеличить высоту размера содержимого self.collectionView
.
ИЗМЕНИТЬ
Даже мое предложение выше, сброс размера содержимого, не работает должным образом! Я попробовал следующее при обновлении моего вида коллекции:
int numberOfRows = self.dataArray.count / 3;
self.collectionView.contentSize = CGSizeMake(self.view.frame.size.width, (numberOfRows * 200) + 300);
Это очень уродливо. Это связано с тем, что все мои изображения имеют размер 200x200px, который соответствует 3 изображениям на строку (следовательно, деление на 3).
Кроме того, даже с +300, который у меня есть, в последней строке я могу видеть только 3/4, а не все. Я должен прокрутить больше, и я смогу увидеть его, но он снова вернется к 3/4. Это похоже на прокрутку для обновления, когда представление перемещается только, если вы перетаскиваете его, и когда вы оставляете его, он возвращается назад туда, где он был. Почему это происходит? Это просто, что Apple разработала UICollectionView
так плохо? Это немного смешно... UITableViews автоматически настраивают свой свиток в соответствии с их содержимым.