如何检测 iOS ScrollView 何时位于最顶部?
How can I detect when iOS ScrollView is at the very top?
如何检测用户何时滚动到我的 collectionView 的最顶部?
我尝试使用此代码:
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if collectionView.contentOffset.y <= collectionView.contentSize.height - collectionView.frame.size.height {
print("top")
}
}
但它会打印 "top" 即使我没有到达顶部。
你可以试试
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y == 0 {
// top
}
}
scrollViewDidEndDragging
表示用户手指抬起,但因为它有物理模拟惯性,视图可能会继续移动。还有另一个委托方法正是您要查找的内容:scrollViewDidScrollToTop 顾名思义,当您到达滚动视图的顶部时会触发。
编辑:
你也可以试试:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y <= 0 {
print("top!")
}
}
编辑第三次的魅力?如果您在顶部,滚动视图停止移动后,这个只会触发一次。
override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y == 0 {
print("top!")
}
}
如何检测用户何时滚动到我的 collectionView 的最顶部?
我尝试使用此代码:
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if collectionView.contentOffset.y <= collectionView.contentSize.height - collectionView.frame.size.height {
print("top")
}
}
但它会打印 "top" 即使我没有到达顶部。
你可以试试
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y == 0 {
// top
}
}
scrollViewDidEndDragging
表示用户手指抬起,但因为它有物理模拟惯性,视图可能会继续移动。还有另一个委托方法正是您要查找的内容:scrollViewDidScrollToTop 顾名思义,当您到达滚动视图的顶部时会触发。
编辑: 你也可以试试:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y <= 0 {
print("top!")
}
}
编辑第三次的魅力?如果您在顶部,滚动视图停止移动后,这个只会触发一次。
override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y == 0 {
print("top!")
}
}