【发布时间】:2018-11-28 14:47:47
【问题描述】:
我有一个带有UINavigationController 和UITabBarController 的应用程序。 UITabBarController 内部是一个按钮,它应该呈现一个模态视图,我想用褪色背景(黑色,0.5 alpha)将整个屏幕变黑。
我使用UIView() 执行此操作,如下所示,这是在UITabBarController 类中设置的:
let fadeBackground: UIView = {
let fadeBackground = UIView(frame: self.view.frame)
fadeBackground.backgroundColor = UIColor.black
fadeBackground.alpha = 0.5
return fadeBackground
}()
然后我使用view.addSubview(fadeBackground) 将其添加到我的视图中。但是,这会在包括UINavigationController 和UITabBarController 在内的所有内容之上返回褪色背景,但它不会覆盖状态栏。为了显示:
我现在想知道如何将我创建的UIView() 添加到顶部位置,这样它也可以越过状态栏。我知道这可能很棘手,但我见过状态栏上有一个黑条的应用程序,所以我认为这是我需要的,然后将 alpha 设置为 .5。
到目前为止我尝试了什么:
fadeBackground.window?.windowLevel = UIWindow.Level.statusBar + 1fadeBackground.layer.zPosition = 1
但似乎两者都不起作用。我还尝试使用UIApplication.shared.keyWindow?.addSubview(fadeBackground) 将UIView() 添加到keyWindow,但也没有成功。有什么想法或建议吗?
【问题讨论】:
标签: ios swift uinavigationcontroller uitabbarcontroller uistatusbar