Ответ 1
В viewDidLoad
вашего контроллера вы можете написать код для прокрутки по определенному пути указателя коллекции.
self.collectionView.scrollToItem(at:IndexPath(item: indexNumber, section: sectionNumber), at: .right, animated: false)
У нас есть представление коллекции. Я сделал календарь, который показывает даты по горизонтали, и я прокручиваю даты по горизонтали. Сейчас на экране я вижу только 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
}
Расскажите, как я могу его реализовать?
В viewDidLoad
вашего контроллера вы можете написать код для прокрутки по определенному пути указателя коллекции.
self.collectionView.scrollToItem(at:IndexPath(item: indexNumber, section: sectionNumber), at: .right, animated: false)
Вы можете использовать этот
self.collectionView.scrollToItem(at:IndexPath(item: index, section: 0), at: .right, animated: false)
Я использовал ваш ответ @PGDev, но я положил его в viewWillAppear
, и он хорошо работает для меня.
self.collectionView?.scrollToItem(at:IndexPath(item: yourIndex, section: yourSection), at: .left, animated: false)
В SWift 4 это сработало для меня:
override func viewDidLayoutSubviews() {
collectionView.scrollToItem(at:IndexPath(item: 5, section: 0), at: .right, animated: false)
}
размещение его в другом месте привело к странным визуальным эффектам.