【问题标题】:How to hide scrollbar in WebView?如何在 WebView 中隐藏滚动条?
【发布时间】:2018-02-25 08:46:32
【问题描述】:

我切换到 WKWebView 是因为 Apple 不再建议使用 UIWebView

使用以下代码从 WebView 中的容器加载 HTML 文件:

let webview = myWKWebViewClass.webview(for: Bundle.main.filename)
webview.scrollView.isScrollEnabled = false
myContainerView.addSubview(webview)

工作得很好。

但是当我使用 WKWebView 时,会显示在使用 UIWebView 时隐藏的滚动条。

使用这种 css 样式的属性也不起作用(但使用 UIWebView 它可以按预期工作)

 <style>
    ::-webkit-scrollbar {
         display: none!important;
    }
 </style>

编辑:我将 iPhone 用作运行 iOS 11.2 的真实设备(不在模拟器中)。

还尝试使用此 Swift 代码:

webview.scrollView.showsHorizontalScrollIndicator = false
webview.scrollView.showsVerticalScrollIndicator = false

它根本不起作用。

任何隐藏滚动条的帮助将不胜感激。提前致谢!

【问题讨论】:

  • 您找到解决方案了吗?我还在寻找。

标签: html ios css swift webview


【解决方案1】:

您可以为此使用 UIScrollViewDelegate。

这里是隐藏导航栏和工具栏的示例代码:

import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {

    @IBOutlet weak var toolBar: UIToolbar!
    @IBOutlet weak var webV: UIWebView!
    var lastOffsetY :CGFloat = 0
    override func viewDidLoad() {
        super.viewDidLoad()

        webV.scrollView.delegate = self
        let url = "http://apple.com"
        let requestURL = NSURL(string:url)
        let request = NSURLRequest(URL: requestURL!)
        webV.loadRequest(request)
    }

    //Delegate Methods
    func scrollViewWillBeginDragging(scrollView: UIScrollView){
        lastOffsetY = scrollView.contentOffset.y
    }

    func scrollViewWillBeginDecelerating(scrollView: UIScrollView){

        let hide = scrollView.contentOffset.y > self.lastOffsetY
        self.navigationController?.setNavigationBarHidden(hide, animated: true)
        toolBar.hidden = hide
    }
}

【讨论】:

  • 感谢您的回答。我稍后会尝试您的解决方案,如果它有效,您将获得正确的标记。 @Md ...
【解决方案2】:

您可以使用 visibility:none 代替 display

【讨论】:

  • visibility:none 也不起作用。 Display:none 可能是最好的方法 - 两种解决方案显然都不起作用!
猜你喜欢
  • 2011-10-28
  • 2012-06-27
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
相关资源
最近更新 更多