Iphone 如何禁用UIWebview水平滚动?
我已尝试通过插入以下内容来禁用它:Iphone 如何禁用UIWebview水平滚动?,iphone,objective-c,uiwebview,scroll,Iphone,Objective C,Uiwebview,Scroll,我已尝试通过插入以下内容来禁用它: <meta name="viewport" content="width=320" /> 我的HTML字符串,以及上面的十几个变体,徒劳地希望我只是搞错了标记语法。。。但似乎没有什么能阻止UIWebView水平滚动。然而,也有一些应用程序能够做到这一点(比如MobileRSS),而且很可能,因为它们没有被拒绝,所以它们没有使用私有API。我最终设法解决了这个问题。我已经尝试设置“视口宽度”值,但没有效果。使用“溢出:隐藏”与设置视口宽度一起起
<meta name="viewport" content="width=320" />
我的HTML字符串,以及上面的十几个变体,徒劳地希望我只是搞错了标记语法。。。但似乎没有什么能阻止UIWebView水平滚动。然而,也有一些应用程序能够做到这一点(比如MobileRSS),而且很可能,因为它们没有被拒绝,所以它们没有使用私有API。
我最终设法解决了这个问题。我已经尝试设置“视口宽度”值,但没有效果。使用“溢出:隐藏”与设置视口宽度一起起作用。感谢您的回答。您的网页需要有两个属性:1--视口元标记和2--宽度不超过320px,包括边距和填充
这是一个非常简单的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>
正文{宽度:320px;边距:0;填充:0;}
将UIWebview
的UIScrollview
(在iOS5上通过webview.scrollView
和在iOS4上通过遍历子视图树并选择UIScrollview
子视图)的委托设置为“自我”,并使用以下代码:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
[scrollView setContentOffset:CGPointMake(0, scrollView.contentOffset.y)];
}
工作完美,出于某种原因,我的HTML代码在没有任何需要的情况下水平溢出。这将修复它。我的版本,一个常见的解决方案:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView.scrollView setContentSize: CGSizeMake(webView.frame.size.width, webView.scrollView.contentSize.height)];
}
如果webView包含长度大于webView的单词。你必须打破那根绳子。因此,请在div中使用下面的代码
单词包装:打断单词 Swift 5.0解决方案:
func webViewDidFinishLoad(_ webView: UIWebView) {
webView.scrollView.contentSize = CGSize(width: webView.frame.size.width, height: webView.scrollView.contentSize.height)
}
这段代码放在-webViewDidFinishLoad中是很重要的:而不是放在其他地方(就像我把它放在viewDidLoad中并用头撞了一会儿墙一样),我不会说这可以修复它;更像是黑客。但是嘿!如果它成功了,谁在乎呢?(由于您的内容仍然溢出,因此无法修复)