Cat*_*ord 6 uinavigationbar swift
目标:要使表格视图滚动,以便在状态栏下显示半透明而不显示导航栏.
现在,我将tableView设置为顶部锚点(因此技术上位于状态栏下方).在向上滚动表视图时,这会将状态栏设置为纯色.我已经将navigationAppearance的barTintColor和半透明设置为YES而没有运气.
有任何想法吗?视图在故事板中实例化
你的问题很难在没有任何猜测的情况下猜测code.我相信当你在Apple Music应用程序中提到的tableview内容滚动时,你试图实现一个半透明的状态栏.
在您的viewdidLoad方法中尝试以下代码.
第1步:隐藏navigation bar.如果你controller嵌入了navigationController.
navigationController?.navigationBar.isHidden = true
Run Code Online (Sandbox Code Playgroud)
步骤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)
Run Code Online (Sandbox Code Playgroud)
上面的代码将产生以下输出.让我知道代码适合您.
有关如何在以下链接中设置tableView frame和contentView查看我的答案的更多信息.
更新:
改进答案:
您可以使用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)
Run Code Online (Sandbox Code Playgroud)
输出:
| 归档时间: |
|
| 查看次数: |
4078 次 |
| 最近记录: |