App项目有个新需求:进入App,跳出《隐私协议》弹窗,需要浏览完协议内容,才可以点击“确定”按钮。
分析需求:需要监听WKWebView的右侧滑动条滑动到底部。
WKWebView内部内置了一个ScrollerView,所以其实是监听ScrollerView的纵向滑动。
1.设置WKWebView里的ScrollerView代理:webView.scrollView.delegate = self;
2.实现ScrollerView的代理方法:- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 或者 - (void)scrollViewDidScroll:(UIScrollView *)scrollView
原理是当ScrollerView的内容高度(contentSize.height)减去偏移量(contentOffset.y)的等于 scrollView 的高度时,说明进度条滑倒底部了
注意:contentSize.height - contentOffset.y 有时候会有小数,不一定准确的恰好等于 scrollView 的高度,但是误差不回超过 1,所以在实际些代码是,可以变通一下。
当 contentSize.height - contentOffset.y 小于 scrollView 的高度 + 1 ; (或者+10,容错率大一些)
如下图:
scrollView代理方法,二选一: