【发布时间】:2014-11-06 14:25:23
【问题描述】:
我知道已经发布了一些关于此的问题,但没有一个对我的具体问题有帮助。我想在整个屏幕上方显示一个自定义模式,但我想保持 Apple 状态栏可见。对于模态,我使用一个UIView 用于调光效果,另一个用于用户将与之交互的实际视图。然后将整个模态框作为子视图添加到当前视图并放在前面。本质上,我试图复制 UIAlertView 的行为,但自定义视图除外。这是我的一些代码:
var modalView:UIView = UIView(frame: self.view.window!.bounds)
modalView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.66)
modalView.addSubview(customView)
self.view.window!.addSubview(modalView)
modalView.window!.windowLevel = UIWindowLevelStatusBar + 1
self.bringSubviewToFront(modalView)
以上,customView 是用户与之交互的UIView。
这很好用,但出于某种原因,即使状态栏的样式设置为 LightContent,Apple 状态栏上的文本也会消失。从代码中可以看出,我没有触摸状态栏。
我正在尝试使状态栏上的文本变暗,就像屏幕的其余部分一样,目前卡住了。有人对我如何获得所需的行为有任何见解吗?
任何帮助将不胜感激!
【问题讨论】:
-
您可以尝试上一层并在新的 UIWindow 中实现您的机制。以下是该方法的一些注意事项:stackoverflow.com/q/8232398/1442620
标签: ios swift screen statusbar