我正在设计一种设计,当您向上滚动时,它会在导航栏中逐渐从透明变淡为白色,并且还会更改后退按钮的颜色。我有导航栏过渡的代码,但是后退按钮的色调上的颜色过渡很奇怪。
我尝试过将亮度设置为黑色,但将色相/亮度匹配为黑色,但是当您再次向下滚动到顶部时,它保持黑色。当前代码块中的代码从白色变为亮蓝绿色,然后在进一步滚动时弹出为黑色。
我相信唯一需要更改的是代码块中的else {}子句。
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
var offset = scrollView.contentOffset.y / 150
print(offset)
if offset > 1 {
offset = 1
let color = UIColor(red: 1, green: 1, blue: 1, alpha: offset)
self.navigationController?.navigationBar.tintColor = UIColor(hue: 0, saturation: offset, brightness: 0, 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 = UIColor(hue: 0.5, saturation: offset, brightness: 1, alpha: 1)
self.navigationController?.navigationBar.backgroundColor = color
UIApplication.shared.statusBarView?.backgroundColor = color
}
}
我正在尝试使按钮从白色变为黑色,向上滚动再次从黑色变为白色。