如何使用swift在webView中禁用水平滚动?

如何使用swift在webView中禁用水平滚动?,swift,uiwebview,horizontal-scrolling,Swift,Uiwebview,Horizontal Scrolling,我有一个简单的webView像: @IBOutlet weak var webView: UIWebView! override func viewDidLoad() { super.viewDidLoad() let url = "https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref

我有一个简单的
webView
像:

@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
    super.viewDidLoad()

    let url = "https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-XID_456"
    let requestURL = NSURL(string:url)
    let request = NSURLRequest(URL: requestURL!)
    webView.loadRequest(request)
当我将此请求加载到webView时,它的加载非常好,但当它完全加载时,它会像这样水平滚动,当我从左侧和右侧滚动它时:

我不想这样滚动它,我只想它垂直滚动有没有任何方法可以在swift中这样做我在互联网上搜索,但只找到了objective-c的解决方案,我在swift中尝试,但没有工作


请为我提供任何解决方案。

更新Swift 4

将这两种方法添加到UIViewController中:

    func webViewDidFinishLoad(_ webView: UIWebView) {
    self.webView.scrollView.showsHorizontalScrollIndicator = false
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if (scrollView.contentOffset.x > 0){
        scrollView.contentOffset = CGPoint(x: 0, y: scrollView.contentOffset.y)
    }
 }

在viewDidLoad方法中添加以下行:

 webview.scrollView.delegate = self
 webview.scrollView.showsHorizontalScrollIndicator = false
现在,此wld在第
webview.scrollView.delegate=self
行显示错误,因此请确保像这样添加UIScrollViewDelegate

class DetailViewController: UIViewController, UIWebViewDelegate, UIScrollViewDelegate{

水平滚动已经停止:)

很抱歉这么晚才回答,但您可以通过实现UIWebViewDelegate方法在数据加载完成后将可滚动大小设置为WebView scrollview来完成此操作

func webViewDidFinishLoad(webView:UIWebView)

您可以这样做:

SWIFT 4:

func webViewDidFinishLoad(_ webView: UIWebView) {
    let scrollableSize = CGSize(width: view.frame.size.width, height: webView.scrollView.contentSize.height)
    self.webView?.scrollView.contentSize = scrollableSize
}
编辑:

func webViewDidFinishLoad(_ webView: UIWebView) {
    let scrollableSize = CGSize(width: view.frame.size.width, height: webView.scrollView.contentSize.height)
    self.webView?.scrollView.contentSize = scrollableSize
}
这里的关键是将webView scrollView宽度设置为主视图宽度,这将防止水平滚动

PS:别忘了采用UIWebViewDelegate协议

class myViewController: UIViewController,UIWebViewDelegate
并在viewDidLoad中设置webView代理

webView?.delegate = self

如果您来这里是想找到一种方法,让它完全不像我那样(水平或垂直)滚动,下面是一个在Swift 5中使用WKWebView的答案:

webView.scrollView.isScrollEnabled = false

谢谢你的回答,但它对我不起作用。你是否检查了我提出的问题的
URL
?你找到解决方案了吗?这对我也不起作用