如何在iOS的WebView中以编程方式阻止滚动?


在iOS中禁用WebView滚动非常简单。

iOS公开了WebView的‘scrollView’属性。

您只需要使用以下代码禁用相应scrollView的滚动。

webView.scrollView.isScrollEnabled = false

以上代码将禁用WebView的滚动。

如果您只想禁用WebView的滚动,以上代码就可以实现。如果您想从头开始学习如何加载WebView并禁用滚动,请继续阅读。

让我们在Xcode中创建一个示例项目并学习WebView的加载。

步骤1 - 打开Xcode → 新建项目 → 单视图应用程序 → 我们将其命名为“WebViewScrollDisabling”

步骤2 - 打开Main.storyboard并添加一个UIWebView,如下图所示

步骤3 - 在ViewController类中添加一个IBOutlet用于上述添加的WebView,将其命名为webView。

@IBOutlet weak var webView: UIWebView!

步骤4 - 在这里,我们将在webView中加载TutorialsPoint网站。因此,在ViewController类的viewDidLoad方法中添加以下几行代码

webView.loadRequest(URLRequest(url: URL(string: "https://tutorialspoint.com/index.htm")!))

步骤5 - 运行应用程序。您将看到TutorialsPoint网站已加载。尝试滚动webview。您应该能够像下图所示那样滚动webview。

步骤6 - 现在我们的目标是停止webView的滚动。我们可以通过停止底层scrollView的滚动来实现这一点。在加载weView之后添加以下代码行。

webView.scrollView.isScrollEnabled = false
After doing this your viewDidLoad method would look like this
override func viewDidLoad() {
   super.viewDidLoad()
   // Do any additional setup after loading the view, typically from a nib.
   webView.loadRequest(URLRequest(url: URL(string: "https://tutorialspoint.com/index.htm")!))
   webView.scrollView.isScrollEnabled = false
}

步骤7 - 现在运行应用程序。与之前的情况一样,webView将加载TutorialsPoint网站。但是我们将无法滚动它。尝试滚动webview。您将无法做到。

更新于:2019年9月11日

1K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告