Как прокручивать список объектов в виде коллекции в swift

У нас есть представление коллекции. Я сделал календарь, который показывает даты по горизонтали, и я прокручиваю даты по горизонтали. Сейчас на экране я вижу только 3-4 даты. Теперь я хочу, чтобы автоматически прокручивалась до определенной выбранной даты, когда был показан экран календаря. Так что дата, которую я хочу прокрутить, пока не отображается.

Для этого я получил индексный путь для конкретной ячейки. Теперь я пытаюсь прокрутить его к определенному пути индекса.

  func scrollCollectionView(indexpath:IndexPath)
  {
   // collectionView.scrollToItem(at: indexpath, at: .left, animated: true)
    //collectionView.selectItem(at: indexpath, animated: true, scrollPosition: .left)
    collectionView.scrollToItem(at: indexpath, at: .centeredHorizontally, animated: true)
    _ = collectionView.dequeueReusableCell(withReuseIdentifier: "DayCell", for: indexpath) as? DayCell

  }

Расскажите, как я могу его реализовать?

Ответ 1

В viewDidLoad вашего контроллера вы можете написать код для прокрутки по определенному пути указателя коллекции.

self.collectionView.scrollToItem(at:IndexPath(item: indexNumber, section: sectionNumber), at: .right, animated: false)

Ответ 2

Вы можете использовать этот

self.collectionView.scrollToItem(at:IndexPath(item: index, section: 0), at: .right, animated: false)

Ответ 3

Я использовал ваш ответ @PGDev, но я положил его в viewWillAppear, и он хорошо работает для меня.

self.collectionView?.scrollToItem(at:IndexPath(item: yourIndex, section: yourSection), at: .left, animated: false)

Ответ 4

В SWift 4 это сработало для меня:

override func viewDidLayoutSubviews() {

    collectionView.scrollToItem(at:IndexPath(item: 5, section: 0), at: .right, animated: false)
}

размещение его в другом месте привело к странным визуальным эффектам.