如何禁用UIWebview水平滚动?

时间:2010-03-07 19:54:38

标签: iphone objective-c uiwebview scroll

我已尝试插入以下内容来禁用它:

<meta name="viewport" content="width=320" />

进入我的HTML字符串,上面的十几个变种徒劳地希望我搞砸了标签语法......但似乎没有什么能阻止UIWebView水平滚动。然而,有些应用程序可以设法执行此操作(例如MobileRSS),并且可能因为它们没有被拒绝,所以它们不使用私有API。

7 个答案:

答案 0 :(得分:32)

我的版本,一个常见的解决方案:

- (void)webViewDidFinishLoad:(UIWebView *)webView {

[webView.scrollView setContentSize: CGSizeMake(webView.frame.size.width, webView.scrollView.contentSize.height)];

}

答案 1 :(得分:8)

我最终设法解决了这个问题。我已经尝试设置视口宽度值,但它不起作用。 DID的工作原理是使用溢出:隐藏与设置视口宽度一起使用。谢谢你回答。

答案 2 :(得分:4)

您的网页需要有两个属性:1 - 视口元标记,2 - 宽度为320像素或更少,包括边距和填充。

这是一个非常裸露的HTML5骨架,应允许垂直滚动并禁止水平滚动,包括禁止水平弹跳。这也禁止缩放 - 它假定您的网页应始终显示1-1给用户。如果您使用UIWebView来显示用户界面,这将非常有用。

<!doctype html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0" />
    <style>
        body {width:320px;margin:0;padding:0;}
    </style>
</head>
<body></body>
</html>

答案 3 :(得分:4)

如果webView内容是一个长度大于webView的单词。你必须打破那个字符串。所以在div中使用以下代码

自动换行:break-word;

答案 4 :(得分:1)

<meta name="viewport" content="width=device-width, user-scalable=no initial-scale=1.0" />

答案 5 :(得分:1)

UIWebview的{​​{1}}设置代理(在iOS5上为UIScrollview,在iOS4上设置代理,方法是遍历子视图树并选择webview.scrollView子视图)为'self '并使用以下代码:

UIScrollview

完美地工作,由于某种原因我的HTML代码水平溢出而不需要它。这解决了。

答案 6 :(得分:0)

Swift 5.0 解决方案:

func webViewDidFinishLoad(_ webView: UIWebView) {
    webView.scrollView.contentSize = CGSize(width: webView.frame.size.width, height: webView.scrollView.contentSize.height)        
}