Я использую UICollectionView
с автозапуском для отображения галереи. У меня есть 2 типа prototype cells
- один для отображения для 2-столбцового набораView и один для трехколонного представления.UICollectionView auto layout с различными ячейками
На кнопку мыши, вид должен быть переключен на 2-колонный и 3-колонный
Ниже мой код:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellGrid" forIndexPath:indexPath];
if([selected_layout isEqualToString:@"tile"]){
cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellTile" forIndexPath:indexPath]; // for 2 columns
} else {
cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellGrid" forIndexPath:indexPath]; // for 3 columns
}
[cell layoutIfNeeded];
[cell setNeedsDisplay];
return cell;
}
Я не установка ячейки высота/ширина в любом месте в коде, Я только что указал его в xib. Но каждый раз 3 столбца collectionView
отображается примерно с 10-кратным черным промежутком между каждой ячейкой.
Я ссылался на this link, но использует быстрые и пользовательские классы ячеек. Я не хочу это использовать.
Как это решить? Где я ошибаюсь?
если размер ячейки разнообразные средства, вам необходимо установить размер ячейки в Collectio зрения, - (CGSize) CollectionView: (UICollectionView *) CollectionView расположение: (UICollectionViewLayout *) collectionViewLayout referenceSizeForFooterInSection: (NSInteger) раздел { if ([selected_layout isEqualToString: @ "tile"]) return CGSizeMake (collectionView.frame.size.width/3,50); еще return CGSizeMake (collectionView.frame.size.width/2,50); } вот так – NANNAV
@NANNAV пробовал это, все тот же. Зачем мне устанавливать размер нижнего колонтитула? 'referenceSizeForFooterInSection' – z22
Вы каждый раз проверяли значение selected_layout? – sourav