本文介绍了不带导航栏的半透明状态栏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
目标:使表视图滚动,使其在状态栏下显示半透明,同时不显示导航栏。
现在,我将tableView设置为顶部锚点(因此从技术上讲在状态栏下面)。这会在您向上滚动表视图时将状态栏设置为纯色。我已将导航外观的barTintColor和半透明设置为YES,但没有成功。
有什么想法吗?视图在情节提要中实例化
推荐答案
如果没有任何code
,很难猜出您的问题。我相信您试图在表格视图内容像您在Apple Music应用中提到的那样滚动时实现半透明状态栏。
在viewdidLoad
方法中尝试以下代码。
第一步:隐藏navigation bar
。如果您的controller
嵌入了navigationController
。
navigationController?.navigationBar.isHidden = true
第2步:将statusBar大小UIView
放到您的控制器上,作为调整alpha
值的半透明状态栏。
let statusBarView = UIView(frame: CGRect(x:0, y:0, width:view.frame.size.width, height: UIApplication.shared.statusBarFrame.height))
statusBarView.backgroundColor=UIColor.white
statusBarView.alpha = 0.8 // set any value between 0 to 1
view.addSubview(statusBarView)
以上代码将产生以下输出。请让我知道代码是否适合您。
有关如何设置tableView frame
和contentView
的详细信息,请查看我在以下link中的回答。
更新:
改进的答案:
您可以使用UIBlurEffectView
获得更好的半透明效果。
let statusBarView = UIView(frame: CGRect(x:0, y:0, width:view.frame.size.width, height: UIApplication.shared.statusBarFrame.height))
let blurEffect = UIBlurEffect(style: .extraLight) // Set any style you want(.light or .dark) to achieve different effect.
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = statusBarView.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
statusBarView.addSubview(blurEffectView)
view.addSubview(statusBarView)
输出:
这篇关于不带导航栏的半透明状态栏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!