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