如果没有code,您的问题很难猜到。我相信您会尝试在 Apple Music 应用中提到的 tableview 内容滚动时实现半透明状态栏。
在您的 viewdidLoad 方法中尝试以下代码。
第 1 步:隐藏navigation bar。如果您的controller 嵌入了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)
以上代码将产生以下输出。让我知道该代码适合您。
有关如何设置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)
输出: