swift – 没有导航栏的半透明状态栏

目标:要使表格视图滚动,以便在状态栏下显示半透明而不显示导航栏.

现在,我将tableView设置为顶部锚点(因此技术上位于状态栏下方).在向上滚动表视图时,这会将状态栏设置为纯色.我已经将navigationAppearance的barTintColor和半透明设置为YES而没有运气.

有任何想法吗?视图在故事板中实例化

解决方法

如果没有任何代码,您的问题很难猜测.我相信当您在Apple Music应用中提到的tableview内容滚动时,您尝试实现半透明状态栏.

在viewdidLoad方法中尝试以下代码.

第1步:隐藏导航栏.如果您的控制器嵌入了navigationController.

navigationController?.navigationBar.isHidden = true

步骤2:将状态栏大小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)

上面的代码将产生以下输出.让我知道代码适合您.

enter image description here

有关如何设置tableView框架和contentView的更多信息,请查看以下link中的答案.

更新:

改进答案:

您可以使用UIBlurEffectView来实现更好的半透明效果.

let statusBarView = UIView(frame: CGRect(x:0,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)

输出

enter image description here

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...