因此,我尝试了在YouTube(https://www.youtube.com/watch?v=rNy6aQQYbuY)上看到的有关导航栏褪色动画的代码。
我在正在处理的项目中使用了视频中的代码,如下所示:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
var offset = scrollView.contentOffset.y / 150
if offset > 1 {
offset = 1
let color = UIColor(red: 1, green: 1, blue: 1, alpha: offset)
self.navigationController?.navigationBar.tintColor = UIColor(hue: 1, saturation: offset, brightness: 1, alpha: 1)
self.navigationController?.navigationBar.backgroundColor = color
UIApplication.shared.statusBarView?.backgroundColor = color
} else {
let color = UIColor(red: 1, green: 1, blue: 1, alpha: offset)
self.navigationController?.navigationBar.tintColor = .white
self.navigationController?.navigationBar.backgroundColor = color
UIApplication.shared.statusBarView?.backgroundColor = color
}
}
我也使用了此扩展名:
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
因此,使用上面给出的摘录,我得到的动画与视频中的动画相同。 随着向下滚动,我在白色导航栏中逐渐淡出,反之亦然,当滚动缓慢到达顶部时。
但是,我想做的是从具有黑色背景色(不透明度:50%)和白色条形按钮项的导航栏中淡出。然后,向下滚动时,导航栏应开始从黑色背景色逐渐淡入纯白色,并开始显示黑色的条形按钮。
谢谢!