首页 > 解决方案 > 自动滚动到顶部

问题描述

我能够在打开应用程序时让它自动滚动到顶部,但现在它不会让你再滚动了,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)
    }
}

我还能把它放在哪里?

标签: iosswiftuiscrollviewuicollectionviewautoscroll

解决方案


使用以下代码来满足您的需求。对于动画,您只需要在scrollToRow函数的动画中传递值 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)

         }
     }
}

推荐阅读