0

J'ai un UICollectionView horizontalement défilant, je suis en train de définir la direction horizontale en utilisant UICollectionViewFlowLayout.UICollectionViewCell chevauchement

Lorsque je supprime une de la cellule en utilisant -

[self.collectionView deleteItemsAtIndexPaths:selectedItemsIndexPaths]; 

Je remarque que le défilement à la première UICollectionViewCell (non visible lorsque la cellule ci-dessus est supprimé) chevauche la deuxième UICollectionViewCell comme indiqué ci-dessous

enter image description here

Parfois, au lieu de chevauchement, il finit comme -

enter image description here

Mon cellForItemAtIndexPath ressemble -

ABCollectionViewCell *cell = (ABCollectionViewCell *)[cv dequeueReusableCellWithReuseIdentifier:@"abCell" forIndexPath:indexPath]; 

    cell.name.text = [self.categoryArray objectAtIndex:indexPath.row]; 
    cell.contactButton.tag = indexPath.row; 

    cell.layer.cornerRadius = 5.0; 
    cell.layer.borderColor = [UIColor lightGrayColor].CGColor; 
    cell.layer.borderWidth = 1.0; 
    cell.clipsToBounds = YES; 

    return cell; 

J'ai essayé toute la solution de problèmes similaires en ligne, mais aucun d'entre eux semblent fonctionner. Toute aide serait appréciée.

UICollectionViewFlowLayout -

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; 
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; 
flowLayout.estimatedItemSize = CGSizeMake(102.0, 102.0); 
flowLayout.minimumLineSpacing = 6.0f; 
flowLayout.minimumInteritemSpacing = 2.0f; 
[self.collectionView setCollectionViewLayout:flowLayout]; 

Répondre

0

Utilisez cette fonction

func collectionView(_ collectionView: UICollectionView, 
         layout collectionViewLayout: UICollectionViewLayout, 
     insetForSectionAtIndex section: Int) -> UIEdgeInsets { 
return UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10) 
} 
+0

Hey, j'ai essayé cela, mais il ne fonctionne pas –

+0

:(Check it i modifié ma répondre –

+0

Ne fonctionne toujours pas –

0

Perform supprimer comme ce

[self.collectionView performBatchUpdates:^{ 
    [self.collectionView deleteItemsAtIndexPaths:selectedItemsIndexPaths]; 
} completion:^{ 
    [self.collectionView layoutIfNeeded]; 
}]; 
+0

Essayé mais ça ne fonctionne pas :( –

+0

Pouvez-vous partager votre code CollectionViewFlowLayout? – Subash

+0

Ajout du code dans la question –