scrollViewDidScroll无法与WKWebView Swift一起使用

时间:2019-06-29 05:35:55

标签: swift xcode uiscrollview 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()
        loadHtmlFile()
    }

    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)
        }
        print(offset)
    }

    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
    }

}

1 个答案:

答案 0 :(得分:1)

  

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

您没有分享错误所在。我怀疑尽管您没有声明您的视图控制器符合UIScrollViewDelegate,但是在尝试将self设置为滚动视图委托时会导致编译时错误。

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

class ViewController: UIViewController, UIScrollViewDelegate {
相关问题