Я пытаюсь добавить новую ячейку в свой вид коллекции, только если в ней уже имеется более одного элемента. Я не много работал с коллекционными взглядами, и исследования в документах и на этом сайте еще не помогли решить эту проблему. Итак, в моем методе cellForItemAtIndexPath я проверяю, заполнен ли он. Если нет, то я добавляю в клетку, например, так:Вставка новой ячейки в UICollectionView
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
if (self.myArray.count != 0) {
return self.myArray.count + 1;
}
else {
return self.myArray.count;
}
}
// The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyNormalCollectionViewCellS *cells = (MyNormalCollectionViewCells *) [collectionView dequeueReusableCellWithReuseIdentifier:@"MyNormalCollectionViewCells” forIndexPath:indexPath];
cell.clipsToBounds = NO;
DataClass *data = [self.myArray objectAtIndex:indexPath.row];
[cells configureMyNormalCellsWith:data];
if (0 < self.myArray.count) {
UICollectionViewCell *deleteCell = [UICollectionViewCell new];
deleteCell.backgroundColor = [UIColor yellowColor];
NSArray *newData = [[NSArray alloc] initWithObjects:deleteCell, nil];
[self.myArray addObjectsFromArray:newData];
NSMutableArray *arrayWithIndexPaths = [NSMutableArray array];
[self.myCollectionView insertItemsAtIndexPaths:arrayWithIndexPaths];
return deleteCell;
}
return cell;
}
По какой-то причине, я утверждение бросает, заявив:
*** Нагрузочным приложение из-за неперехваченное исключение «NSInternalInconsistencyException», причина: «Неверное обновление: недопустимое количество элементов в разделе 0. Количество элементов, содержащихся в существующем разделе после обновления (7), должно быть равно числу элементов, содержащихся в этом разделе, перед обновлением (6) , плюс или минус количество элементов, вставленных или удаленных из этого раздела (0 в serted, 0 удалено) и плюс или минус количество элементов, перемещенных в или из , этот раздел (0 перемещен, 0 перемещен). '
Конечно, число обычно меняется, но оно всегда злится на эту дополнительную ячейку. Все в порядке, пока я не попытаюсь добавить его. Теперь, когда вы не знакомы с коллекционными взглядами и после просмотра связанных вопросов на этом сайте, я решил, что пришло время спросить профессионалов.
Кто-нибудь знает, как я должен изменить этот код, чтобы выполнить то, что я пытаюсь сделать?
Спасибо. Я пробовал это решение, но я столкнулся с ошибкой «NSRangeException», причина: *** - [__ NSArrayM objectAtIndex:]: индекс 6 за пределами границ [0 .. 5] ' – John
вы пытаетесь 'self.dataArray [ indexPath.row] 'в' else' блоке '(indexPath.row
Kreiri
Или как я могу изменить свой код, чтобы это произошло? Думал, что я правильно вас понял, но не должен ... – John