Swift-滚动条的滚动颜色从黑色(不透明度:50%)变为白色

时间:2019-01-15 11:04:21

标签: swift navigationbar uicolor

因此,我尝试了在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%)和白色条形按钮项的导航栏中淡出。然后,向下滚动时,导航栏应开始从黑色背景色逐渐淡入纯白色,并开始显示黑色的条形按钮。

谢谢!

0 个答案:

没有答案