自动滚动到顶部

Auto Scroll to Top

我可以让它在打开应用程序时自动滚动到顶部,但现在它不会再让你滚动了,因为 scrollView 由于 [=] 强行将它保持在顶部12=].

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)
    }
}

我还能把它放在哪里?

使用下面的代码来实现你的需求。对于动画,你只需要在 scrollToRow 函数的 animated 中传递值 true/false 即可。 希望对您有所帮助!

在没有动画的情况下滚动到顶部

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)

         }
     }
}

请在重新加载 collectionView 后尝试此操作

DispatchQueue.main.async {
    self.collectionView.scrollsToTop = true
 }