2016-08-01 2 views
0

je joue avec le projet incroyable trouvé sur Git: https://github.com/ink-spot/UPCarouselFlowLayoutSwift: pages infinies UiCollectionView

Je suis en train de créer un carrousel infini. Cela signifie qu'il commencera à partir du premier élément après le dernier.

je tente de modifier CollectionView - méthode cellForItemAtIndexPath avec le code:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(CarouselCollectionViewCell.identifier, forIndexPath: indexPath) as! CarouselCollectionViewCell 
    let character = items[indexPath.row] 
    cell.image.image = UIImage(named: character.imageName) 


    if indexPath.row == items.count - 2 { 

     items.insert(items[0], atIndex: items.count) 
     items.removeAtIndex(0) 


     //self.collectionView.reloadItemsAtIndexPaths([NSIndexPath(forItem: 0, inSection: 0)]) 
     self.collectionView.reloadData() 
    } 

    return cell 
} 

Mon idée était de mettre à jour réseau de sources en mouvement premier élément à la fin. Mais ça ne fonctionne pas.

J'ai aussi une question, comment puis-je modifier le code pour voir le 2ème élément au centre après le chargement du programme? Alors qu'Il montrerait 2ème élément et aura 1er à gauche et troisième à droite.

merci!

Répondre

0

Vous pouvez utiliser la bibliothèque this (SwipeView) sur github. J'ai aussi utilisé mes projets. Définit la propriété suivante pour un scrollview infini.

self.swipeView.wrapEnabled = true 

Il est très facile à utiliser. Essayez-le vous-même.

Et si vous êtes lié à utiliser UICollectionView si vous souhaitez visiter ce tutoriel here. Ceci explique comment vous pouvez implémenter Infinitely-Scrolling avec UICollectionView.

+0

Oui, il utilise UICollectionView et votre lien ne sera pas utile car il nécessite des cellules remplissent toute la largeur de la vue de la collection. Dans mon exemple, un élément est au centre et deux à gauche et à droite – Almazini