如何检测用户何时滚动到我的 collectionView 的最顶部?
我尝试使用此代码:
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if collectionView.contentOffset.y <= collectionView.contentSize.height - collectionView.frame.size.height {
print("top")
}
}
但即使我没有到达顶部,它也会打印“顶部”。
最佳答案
scrollViewDidEndDragging
表示用户的手指抬起,但由于它具有物理模拟惯性,因此 View 可能会继续移动。还有另一个委托(delegate)方法正是您正在寻找的:scrollViewDidScrollToTop顾名思义,当您到达 ScrollView 的顶部时会触发。
编辑: 您还可以尝试:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y <= 0 {
print("top!")
}
}
编辑第三次有魅力吗?如果您位于顶部,则在 ScrollView 停止移动后,此事件只会触发一次。
override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y == 0 {
print("top!")
}
}
关于ios - 如何检测 iOS ScrollView 何时位于最顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59366061/