例如,我有一个按钮,当用户点击它时,它会从底部打开一个弹出滚动视图,其中有一个很长的垂直内容。如果用户在滚动视图内容偏移位于顶部时尝试向下滑动,我想通过动画将其弹出到屏幕底部来关闭滚动视图。
如何检测该事件?我知道当滚动视图使用scrollViewDidScroll
函数滚动时,我可以获取该事件。但它没有给我任何关于用户是向上还是向下滚动的信息。因此,当offset.y
为0并且用户仍然正在刷.down
时,我无法检查"然后关闭弹出窗口"。请帮忙。感谢。
答案 0 :(得分:0)
在scrollViewDidScroll(_ scrollView:UIScrollView)方法中尝试此方法
let scrollDiff = scrollView.contentOffset.y - self.previousScrollOffset
let absoluteTop: CGFloat = 0;
let absoluteBottom: CGFloat = scrollView.contentSize.height - scrollView.frame.size.height;
let isScrollingDown = scrollDiff > 0 && scrollView.contentOffset.y > absoluteTop
let isScrollingUp = scrollDiff < 0 && scrollView.contentOffset.y < absoluteBottom
self.previousScrollOffset = scrollView.contentOffset.y
并将其设置为全局变量var previousScrollOffset:CGFloat = 0;
你可以打印并检查这是否是吵架
希望这会给你方向