当前位置: 首页 > 面试题库 >

在iOS 8的Apple Status Bar上方显示UIView

邹高峻
2023-03-14
问题内容

我知道已经发布了一些与此有关的问题,但是没有一个问题对我的特定问题有所帮助。我想在整个屏幕上方显示自定义模式,但是我想保持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状态栏上的文本也只会消失。从代码中可以看出,我没有触摸状态栏。

我正在尝试使状态栏上的文本变暗,就像屏幕的其余部分一样,目前卡住了。有谁对我如何获得期望的行为有任何见解?

任何帮助将不胜感激!


问题答案:

编辑(2015年11月16日)

我从下面的这个线程复制我的答案:

此答案在iOS 8.3+和iOS 8的早期版本中均无效。我不建议任何人使用它,特别是因为不能保证在将来的iOS版本中都可以使用它。

我的新解决方案使用的标准presentViewController方法UIViewController。我初始化UIViewController,将自定义模态添加View为的子视图UIViewController,然后选择View使用约束定位模态。奇迹般有效!

原始答案

遵循Anna的建议,我使用a UIWindow代替了UIView.Here,这是我的新代码:

var modalWindow:UIWindow = UIWindow(frame: self.view.window!.bounds)

modalWindow.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.66)
modalWindow.hidden = false
modalWindow.windowLevel = (UIWindowLevelStatusBar + 1)

modalWindow.addSubview(customView)

modalWindow.makeKeyAndVisible()

现在它可以像以前一样正常工作,除了Apple状态栏上的文本也变暗了。非常感谢您提供的所有帮助!



 类似资料:
  • 我试图在qtip中的图像上显示jQuery UI工具提示。现在,工具提示显示在工具提示后面。你知道怎么把它展示在它面前吗? 小提琴在这里:http://jsfiddle.net/wYM2Q/ 将鼠标移到文本“bind qtip to this”上。然后将鼠标悬停在qtip内的图像上。你会看到qtip后面显示的工具提示,我想在它前面显示。

  • 我有一组数据,我正在分散地绘制。当我将鼠标滑过其中一个圆圈时,我希望它弹出数据(比如x、y值,可能更多)。以下是我尝试使用的: 我想我需要更多关于输入什么数据的信息?

  • 在使用特定的“look and feel”时,是否有一种简单的方法来更改JSlider上方标签中显示的值? 明确一点,我说的是这个值: 具体地说,我想展示的是除以1000的值,而不是值本身。 考虑到JSlider不支持Double,这似乎是一个明显的问题。

  • 问题内容: 我试图用选项卡栏模仿UINavigationController的新功能。我已经看到了很多答案,它们要么指向在viewController上设置,仅将其完全隐藏而不是在点击时隐藏。 提前致谢 编辑:根据下面我的建议 实际上确实隐藏了tabBar(在点击时切换true / false),但是没有动画。我将作为一个单独的问题提出。 问题答案: 经过大量的探索并尝试了各种方法来使用Swift

  • 我有一个视图,作为另一个视图之上的子视图/模式,例如子视图/模式应该是透明的,添加到子视图中的任何组件都应该是可见的。问题是,我有一个子视图显示黑色背景,而不是有清晰的颜色。我试图将制作成清晰的颜色,而不是黑色背景。有人知道它怎么了吗?如有任何建议,我们将不胜感激。 FirstViewController. m 第二视图控制器。M 解决:我修复了问题。它在iPhone和iPad上都运行良好。模态视

  • 我在iOS 8和更高版本的iPad中面临一个定向问题。我的应用程序在iPad中需要横向向右和横向向左方向。但在iOS 8的iPad中,它只支持横向向右定位。如果尝试更改方向,状态栏的方向将更改,但应用程序的视图控制器方向保持不变。我使用的是Xcode 6.2和swift。我在plist中添加了所有方向,并使用func shouldAutorotate()-