【问题标题】:ios - Enable scroll and zoom in UIWebView but disable other user interactionios - 在 UIWebView 中启用滚动和缩放,但禁用其他用户交互
【发布时间】:2013-05-24 20:46:04
【问题描述】:

我想让用户截取他在 UIWebView 中选择的特定区域的屏幕截图。为此,我想做的是启用缩放和拖动,但避免所有其他用户交互。

我已经没有关注他们点击的任何链接,但是我没有找到一种方法来控制当他们点击 smth 时的 javascripts 调用,或者在他们点击 texfield 时控制键盘的显示。

有什么想法吗? 谢谢!

【问题讨论】:

    标签: iphone ios uiwebview uiscrollview xamarin.ios


    【解决方案1】:

    Psiticosis 答案是实现此目的的更简单方法,但将“透明视图”添加到文档正文中更容易。

    只需 execute a script on your WebView 在文档正文上添加覆盖。 脚本可以是这样的:

    //CSS setup
    var styletag = document.createElement("style");
    styletag.type = "text/css";
    styletag.innerHTML = '#naughty-overlay {position:fixed; height:100%; z-index:9999;}';
    styletag.innerHTML += '* {-webkit-user-select:none;}';
    
    //Create the overlay div
    var overlay = document.createElement('div');
    overlay.id = 'naughty-overlay';
    
    //Append elements
    document.body.appendChild(styletag);
    document.body.appendChild(overlay);
    

    【讨论】:

    • 完美解决方案!只需要添加这个css属性:“pointer-events: none;”。谢谢!
    【解决方案2】:

    您可以在 UIWebView 上放置一个透明视图,并且只允许捏缩放和滚动手势落入 UIWebView。这是首先想到的。

    【讨论】:

    • 好的。我在覆盖视图中检测到触摸。我尝试在 UIWebView 中调用 TouchesBegan,但它不起作用。
    • this thread 中选择的答案应该会有所帮助。如果还不清楚,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 2016-01-14
    • 2019-07-23
    • 2023-03-13
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    相关资源
    最近更新 更多