如何检测用户何时尝试滑动"过去UIScrollView内容偏移"?

时间:2018-02-23 03:00:33

标签: ios swift uiscrollview uiscrollviewdelegate

例如,我有一个按钮,当用户点击它时,它会从底部打开一个弹出滚动视图,其中有一个很长的垂直内容。如果用户在滚动视图内容偏移位于顶部时尝试向下滑动,我想通过动画将其弹出到屏幕底部来关闭滚动视图。

如何检测该事件?我知道当滚动视图使用scrollViewDidScroll函数滚动时,我可以获取该事件。但它没有给我任何关于用户是向上还是向下滚动的信息。因此,当offset.y为0并且用户仍然正在刷.down时,我无法检查"然后关闭弹出窗口"。请帮忙。感谢。

1 个答案:

答案 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;

你可以打印并检查这是否是吵架

希望这会给你方向