WebView 如何锁定水平滚动?
Posted
技术标签:
【中文标题】WebView 如何锁定水平滚动?【英文标题】:WebView how can I lock the horizontal scroll? 【发布时间】:2014-04-06 12:16:03 【问题描述】:我只想让 WebView 全屏显示而不能水平滚动。我想要这个用于纵向和横向。
我对 ios 很陌生,我不知道它是如何工作的。我觉得故事板和 xib 与 android 的 xmls 相比非常混乱。当我打开src代码时,代码很多,我想不出来。
【问题讨论】:
禁用简单的水平滚动 【参考方案1】:让我举例说明一种方法。考虑一下这个未经测试的伪代码。
@implementation MyViewController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
CGSize contentSize = self.webView.scrollView.contentSize;
switch (orientation)
case UIInterfaceOrientationPortrait:
contentSize.width = 320.0;
self.webView.scrollView.contentSize = contentSize;
return YES;
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
contentSize.height = 568.0;
self.webView.scrollView.contentSize = contentSize;
return YES;
return NO;
@end
这里的想法是,当底层滚动视图的内容大小适合滚动should not be possible 的屏幕尺寸时。此代码对方向变化(当设备转动时)做出反应,并将边缘长度调整为它们各自的屏幕尺寸。
这样做的一个问题是设备必须至少转动一次,并且在两个方向转动手机后,contentSize
被锁定在320, 568
。要解决这个问题,请考虑this SO。
【讨论】:
【参考方案2】:您可以在界面生成器中为 Web 视图勾选“缩放页面以适应”复选框,这将确保 UIWebView 通过缩小其大小来将内容适合 iPhone/iPad 的屏幕,这实际上禁用了滚动的需要水平。
或者您可以执行以下操作:由于 UIWebView 包含在 UIScrollView 中,您可以使用此 SO 链接中描述的方法禁用此 UIScrollView 的滚动:How to disable horizontal scrolling of UIScrollView? 您可以通过调用 webview.scrollView 来访问 WebView 的滚动视图
【讨论】:
以上是关于WebView 如何锁定水平滚动?的主要内容,如果未能解决你的问题,请参考以下文章
React Native Android WebView 如何禁用水平滚动?