override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.alpha = 0.0
// 防止APP后台运行, 再进入前台, 上方出现一块空白
self.navigationController?.navigationBar.isTranslucent = true
// 当APP从后台进入前台, 根据 scrollView 的 contentOffset 设置导航栏透明度
NotificationCenter.default.addObserver(self, selector: #selector(becomeActive), name: UIApplication.didBecomeActiveNotification, object: nil)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// 防止进入其他页面导航栏展示异常
self.navigationController?.navigationBar.alpha = 1.0
self.navigationController?.navigationBar.isTranslucent = false
}
// APP 从后台进入前台, 改变导航栏透明度
@objc func becomeActive() {
self.setAlpha()
}
// scrollView滑动 改变导航栏透明度
func scrollViewDidScroll(_ scrollView: UIScrollView) {
self.setAlpha()
}
func setAlpha() {
let offsetY = scroll.contentOffset.y
let alpha = 1 - (kNavBarAndStatusBarHeight - offsetY) / kNavBarAndStatusBarHeight
self.navigationController?.navigationBar.alpha = alpha
}
swift 导航栏滑动透明渐变
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 现在有很多APP喜欢透明导航栏的UI设计:会在VC页面上方自定义一个头视图,并它的尺寸会随页面向下滑动而动态拉长。...
- 实现原理其实就是观察UITableView的contentOffset的y值,根据y值的变化来不断的设置导航栏背景...
- Demo链接:链接: https://pan.baidu.com/s/1nxf3lQp密码: 3f54 0.效果图...
- 上一篇已经完成了导航栏效果的渐变。但是侧滑返回的时候,导航栏从不透明界面跳转到透明界面时,总是会突变,感觉很膈应。...
- 这里不说原理,不说iOS 11更新了什么功能,只告诉你遇到这样的问题怎么改,就是这么简单粗暴 一、隐藏导航栏 隐藏...