我有一个WKWebView
我以编程方式嵌入UIView
,此UIView
嵌入UIScrollView
。
要想象:
以下是我所做的简化版本:
UIScrollView
|
+---- UIView
| |
| +-- UIButton
| |
| +-- UILabel
|
+---- UIView
|
+-- WKWebView
我不希望WKWebView
滚动,我通过在页面上注入以下脚本来禁用它。
document.ontouchmove = function(event) { event.preventDefault(); }
目前,当我点击WKWebView
时,滚动功能无法正常工作。但是一旦我在上面的UIView
内轻拍,我就可以再次滚动。我已经在发生的事情下附上了一个GIF。红色部分为WKWebView
,绿色部分为UIView
。
我已使用scrollEnabled
禁用了滚动功能,但由于我仍然可以滚动WKWebview
,因此无效。
webView.scrollView.scrollEnabled = false
webView.scrollView.bounces = false
加载网页后注入以下javascript(当前解决方案)
document.ontouchmove = function(event) { event.preventDefault(); }
对视图使用静态UITableViewController
,但我仍遇到同样的问题。
答案 0 :(得分:0)
我也遇到过同样的问题。对我来说,解决方法是在ScrollView
上设置内容插入,如下所示:
scrollView.contentInset = UIEdgeInsetsMake(FLT_EPSILON, FLT_EPSILON, FLT_EPSILON, FLT_EPSILON);
好像WKWebview
中进行了一些优化,可以防止父级scrollView
的大小适合scrollview
大小时接收手势。即使插入FLT_EPSILON
的大小也可以设置插入WkWebView
传递手势。
它仅适用于WKWebView
内部的UIScrollView
。如果其他UIScrollView
中有UIScrollView
,则不需要此解决方法。