2016-08-01 9 views
0

Я играл с удивительным проектом, найденным на Git: https://github.com/ink-spot/UPCarouselFlowLayoutSwift: бесконечные страницы в UiCollectionView

Я пытаюсь создать бесконечную карусель. Значение будет начинаться с первого элемента после последнего.

Я пытался изменить CollectionView - метод cellForItemAtIndexPath с кодом:

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 
} 

Моя идея состояла в том, чтобы обновить массив исходного перемещения первого элемента до конца. Но это не работает.

Также у меня есть вопрос, как я могу изменить код, чтобы увидеть 2-й элемент в центре после загрузки программы? Так что он будет показывать второй элемент и будет иметь 1-й слева и третий справа.

спасибо!

ответ

0

Вы можете использовать библиотеку this (SwipeView) на github. Я также использовал в своих проектах. установить следующее свойство для бесконечного прокрутки.

self.swipeView.wrapEnabled = true 

Очень прост в использовании. Попробуй сам.

И если вы обязаны использовать UICollectionView, если возможно захотите посетить этот учебник here. Это объясняет, как можно реализовать бесконечную прокрутку с помощью UICollectionView.

+0

Да, он использует UICollectionView, и ваша ссылка не поможет, поскольку для этого требуется, чтобы ячейки заполняли всю ширину кадра представления коллекции. В моем примере один элемент находится в центре и два слева и справа – Almazini