Автоматическая прокрутка вверх - PullRequest
0 голосов
/ 31 августа 2018

Я смог заставить его автоматически прокручиваться к вершине при открытии приложения, но теперь он больше не позволяет прокручивать его из-за scrollView, принудительно удерживающего его наверху из-за willDisplay.

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    if info.count > 0 {
        collectionView.scrollToItem(at: IndexPath(item:info.count - 1, section: 0), at: .top, animated: false)
    }
}

Где еще я могу это поставить?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

попробуйте после перезагрузки collectionView

DispatchQueue.main.async {
    self.collectionView.scrollsToTop = true
 }
0 голосов
/ 31 августа 2018

Используйте следующий код для достижения ваших потребностей. Для анимации вам просто нужно передать значение true / false в анимированной функции scrollToRow. Надеюсь, это поможет вам!

Для прокрутки вверх без анимации

func scrollToTopWithoutAnimation() {
     DispatchQueue.main.async {
         if self.dataArray.count > 0 {
             let indexPath = IndexPath(row: 0, section: 0)
             collectionView.scrollToItem(at: indexPath, at: .top, animated: false)
         }
     }
}

Для прокрутки вверх с анимацией

func scrollToTopWithAnimation() {
     DispatchQueue.main.async {
         if self.dataArray.count > 0 {
             let indexPath = IndexPath(row: 0, section: 0)
             collectionView.scrollToItem(at: indexPath, at: .top, animated: true)

         }
     }
}
...