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 {
我正在尝试在用户使用 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 {