【发布时间】:2021-07-16 17:41:38
【问题描述】:
我想在向上滚动时更改导航栏的颜色。我的scrollViewDidScroll 看起来像:
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
let safeArea: CGFloat = UIApplication.shared.windows.filter{$0.isKeyWindow}.first?.safeAreaInsets.top ?? 0
let alpha: CGFloat = ((scrollView.contentOffset.y + safeArea) / safeArea)
// This label becomes visible when scrolled up
navTitleLabel.alpha = alpha
self.navigationController?.navigationBar.barTintColor = .yellow.withAlphaComponent(alpha)
}
我什至尝试将 0 硬编码为 .yellow.withAlphaComponent(alpha)。但颜色仍然可见。如果您想知道alpha 的初始值(未滚动时),它是-0.9。如何让导航栏在用户滚动时慢慢可见,例如navBarLabel。
这是该行为的 youtube 链接:https://youtu.be/75BjVK-nz4c
【问题讨论】: