Swift - scrollViewDidScroll 不适用于 WKWebView

Swift - scrollViewDidScroll not working with WKWebView

我正在尝试在用户使用 scrollViewDidScroll 滚动时向我的(自定义)导航栏添加阴影,但它没有执行任何操作。我在另一个视图控制器上有完全相同的代码,但它有一个 tableView 而不是 WKWebView 并且它工作正常。

我尝试添加 webView.scrollView.delegate = self,但出现错误。

我的代码:

class ViewController: UIViewController {

    @IBOutlet weak var webView: WKWebView!
    @IBOutlet weak var navBar: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        addShadow()
    }

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let navigationBar = navBar
        let offset = scrollView.contentOffset.y / 10
        if offset > 1.5 {
            navigationBar?.layer.shadowOpacity = 0.15
        } else {
            navigationBar?.layer.shadowOpacity = Float(((3 * offset) / 20)/1.5)
        }
    }

    func addShadow() {
        navBar.layer.shadowColor = UIColor.black.cgColor
        navBar.layer.shadowOffset = CGSize(width: 0, height: 2.0)
        navBar.layer.shadowRadius = 6.0
        navBar.layer.masksToBounds = false
    }
}

I tried adding webView.scrollView.delegate = self but I just get an error.

你没有分享错误是什么。我怀疑您没有将视图控制器声明为符合 UIScrollViewDelegate,这导致在尝试将 self 设置为滚动视图委托时出现编译时错误。

将您的视图控制器声明更改为:

class ViewController: UIViewController, UIScrollViewDelegate {