【问题标题】:Swift - scrollViewDidScroll not working with WKWebViewSwift - scrollViewDidScroll 不能与 WKWebView 一起使用
【发布时间】:2019-06-29 05:35:55
【问题描述】:

当用户使用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
    }
}

【问题讨论】:

    标签: swift xcode uiscrollview wkwebview


    【解决方案1】:

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

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

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

    class ViewController: UIViewController, UIScrollViewDelegate {
    

    【讨论】:

    • 哇,它确实有效,谢谢。但奇怪的是我确实尝试添加 UIScrollViewDelegate 但它仍然无法正常工作。很奇怪。
    猜你喜欢
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多