当用户使用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
}
}
答案 0 :(得分:1)
我尝试添加
webView.scrollView.delegate = self
,但出现错误。
您没有分享错误所在。我怀疑尽管您没有声明您的视图控制器符合UIScrollViewDelegate
,但是在尝试将self
设置为滚动视图委托时会导致编译时错误。
将您的视图控制器声明更改为此:
class ViewController: UIViewController, UIScrollViewDelegate {