答案 0 :(得分:0)
首先将导航栏设置为透明,如下所示
// Makes the navigation bar transparent
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
navigationController?.view.backgroundColor = UIColor.clear
现在使用UIScrollViewDelegate
方法scrollViewDidScroll
来检测滚动视图的百分比,并根据该百分比更改alpha
// MARK: UIScrollViewDelegate
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
super.scrollViewDidScroll(scrollView)
let maximumVerticalOffset = scrollView.contentSize.height - scrollView.frame.height
let currentVerticalOffset = scrollView.contentOffset.y
let percentageVerticalOffset = currentVerticalOffset / maximumVerticalOffset
let color = UIColor.init(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: percentageVerticalOffset)
navigationController?.navigationBar.backgroundColor = color
}
希望对您有帮助
答案 1 :(得分:0)
如果要使导航栏与App Store相同,建议您删除默认导航栏并通过使用UIView并将其框架设置为Topbar来创建自定义的Topbar。
主要原因是默认的导航栏在iPhone X和此类手机上看起来不明智且行为明智。
另一个最重要的事情是,您可以默认使用导航栏来实现它,但是Apple一直在修改导航系统,因为您可以在导航中看到不推荐使用的方法。
因此,我建议您创建自定义导航,这将是易于控制的,并且不存在被弃用的方法和所有方法的可能性。
希望这对您有所帮助。