2015-07-10 35 views
2

我正在构建自定义的Web应用程序,并且一直在阻碍进入的功能是UIWebView上的“双击缩放”。我已经看过这个论坛和网络,我没有看到一个明显的方法来禁用这个。如何禁用UIWebView中的双击事件

如何禁用或忽略我的应用程序中的双击缩放功能?

+0

当你点击webview时你想要发生什么?是否应该像浏览器一样反应? –

+0

似乎很清楚Craig希望禁用双击......它取决于您Craig使用的框架。 – 3pic

+0

3pic是对的,如果可能的话,我想完全禁用双击,因为下面提供的解决方案 - 解决问题时 - 放大页面。 3pic,我正在使用8.1框架(这是你需要知道的吗?) – C4W

回答

3

你根本就禁用与把这个代码在您的viewDidLoad方法缩放:

myWebView.scalesPageToFit = NO; 

有这个另一种方法。将此元标记添加到您的webView内容的头部部分:

<meta name="viewport" content="user-scalable=0"> 
+0

谢谢,那正是我需要的!我认为这样一个简单而有效的解决方案将成为头痛! scalePageToFit完成了诀窍。 – C4W

+0

我说得太快了,虽然这确实解决了这个问题,但现在默认缩放 – C4W

+0

试试这个:'[webView stringByEvaluatingJavaScriptFromString:@“document.body.style.zoom = 5.0;”];' –

2

第一个选项 - 您可以通过设置禁用双击并捏合至左方。

_webView.scalesPageToFit = NO; 
_webView.multipleTouchEnabled = NO; 

第二个选择 - 你可以执行下面的一段在webViewDidFinishLoad代码,以防止双击 - 放大

NSString *js = @"var metaTag=document.createElement('meta');" 
"metaTag.name = \"viewport\";" 
"metaTag.content = \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\";" 
"document.getElementsByTagName('head')[0].appendChild(metaTag);"; 
[webView stringByEvaluatingJavaScriptFromString:js]; 
+0

非常感谢你,我将第一个答案标记为解决了我的问题的答案,但我也已经将你的mutlipleTouchEnabled并入了! – C4W

+0

@CraigS我编辑我的答案,添加另一个选项来运行一个JS,以防止缩放..你不需要设置'scalesPageToFit = NO'这个变化..它应该工作。让我知道它是怎么回事 – Subbu

+0

当我把它放在webViewDidFinishLoad中时,双击会被禁用,但是它会再次放大方式 – C4W

1

克雷格:哟正在做一个Web应用程序...你的代码是HTML/CSS/Js,我猜。

解决方案:<head></head>

<meta name="viewport" content="user-scalable=0"> 

咨询 使用这个,如果你了解中继检视选项你会赢。在为手机做网络应用时非常有用。特别是苹果的。

+0

中提供的代码。谢谢,我没有并不表示我不想编辑解决方案的网页,但我希望改变应用程序本身。 – C4W

+0

哦,好的。所以你已经得到了答案,很好。 (给我一个+1;)) – 3pic

0

一个奇怪的解决方案(不要问我它是如何工作的)是隐藏状态栏。在隐藏状态栏的情况下,doble点击不再缩放webview。

override var prefersStatusBarHidden : Bool { 
    return true 
}