iPhone:带有 View 布局的半透明黑色 uistatusbar 问题

标签 iphone ios layout translucency uistatusbar

我的状态栏有一些问题。这是 iPhone 应用程序,而不是 iPad 应用程序。我希望在应用程序的任何位置都有一个黑色半透明状态栏。

已经在应用程序列表中设置了状态栏样式。它设置为黑色半透明。

我的理解是,设置此设置后,所有 View 的布局将从 0,0 开始,而不是像状态栏不透明时那样从 0,20 开始。这就是为什么 IB 为您提供选项以指定您将使用哪种状态栏的提示,以便它可以模拟它并在 IB 中正确显示它。 (是的,我在 IB 中的所有 View 都设置为显示黑色半透明状态栏)。布局从 0,0 开始,以便状态栏将覆盖您的 View 以显示某些内容。在 IB 中它工作正常。但在我的应用程序中却没有。

我的应用程序是一个基于标签栏的应用程序,只有一个 View 看起来是正确的,即使它们的设置都是一样的。为了让那个 View 起作用,我必须将背景 View 图像设置为 0,-20,并将主视图设置为不剪辑 subview 。所以看起来黑色半透明的布局不能正常工作。此外,我所有其他选项卡 View 的设置方式相同,不剪辑 subview ,主背景 View 设置为 0,-20。但只有在第一个选项卡中,这才真正“起作用”。

下面是一些图片:

它看起来应该如何(但仍然必须将背景设置为 0,-20): This is how it should look

另一个选项卡,具有完全相同的设置,如下所示:bad another tab

为了确保它是一个没有背景覆盖的 blacl 半透明状态栏,我尝试了没有背景:no background

和另一种背景(另一种是纯蓝色,没有轻微的拉丝效果):alternative background

因为所有三个无效示例(无背景、实际和替代)的状态栏看起来完全相同,我假设状态栏是正确的类型,黑色半透明,但后面没有任何东西可以显示。

我的几个选项卡都有这个问题,并且在带有导航 Controller 的选项卡中循环的所有 View 都有这个问题。它们都设置为与“工作”选项卡相同,“剪辑 subview ”设置为 NO,背景原点设置为 0,-20

我认为“工作”的那个不工作,但看起来是由于背景 View 中的负偏移。我认为它实际上应该设置为 0,0 并起作用。但是 IB 提供的主要 View 的原点设置为 0,20,并且显示为灰色,因此我无法更改它。

此外,我在一个选项卡上还有另一个问题,一个设置选项卡,我在其中使用了不同的外观和感觉(更像 iPhone),黑色半透明甚至没有生效。我从一个以编程方式构建的 View 开始,它显示一个灰色的状态栏: settings programmatically constructed

深入到 nib 支持的 View ,它们看起来是一样的:settings nib backed

View 的布局就像一个灰色的状态栏,向下 20 像素(在 IB 中它们被设置为黑色半透明,所以我将它们布置得高 20 像素)

除了应用程序列表条目之外,我还尝试以编程方式设置状态栏样式,但它没有效果(在这些选项卡中的任何一个上)。

我断断续续地研究了这个(谷歌、stackoverflow、apple.com)几个星期。但没有发现我应该做什么的迹象。

预计到达时间:wantsFullScreenLayout 解决了其中一个问题,因此我将其标记为已解决。由于问题不是 uistatusbar 本身,所以我已经打开了一个新问题,其中包含最初出现在此处的两个问题之一的更新问题,新图片,描述等以及更适用的标题。新问题在 new problem

最佳答案

"My understanding is that when this is set, the layout of all the views will start at 0,0 and not 0,20 like it does when you have an opaque status bar."

你从哪里得到的?应用程序窗口的框架将保持原样,默认情况下位于 (0,0) 并且它将保持在那里 - 它不关心状态栏的外观。

现在 View Controller 的 View 是另一回事了。默认情况下,它们的框架设置为 UIScreenapplicationFrame 属性(换句话说,屏幕的边界减去状态栏占用的区域)。这就是为什么你不能让背景颜色显示在半透明状态栏后面。

尝试将构成标签栏的每个 View Controller 的 wantsFullScreenLayout 属性设置为 YES。它会根据需要将帧调到 (0,0)。

关于iPhone:带有 View 布局的半透明黑色 uistatusbar 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726095/

相关文章:

ios - 整个应用程序的状态栏颜色

ios - 如何以编程方式将我的 imageView 置于另一个 ImageView 的中心

ios - 如何验证混音器单元和 iPodEQ 单元的 AudioUnit 属性

ios - 某些 iPad 设备返回此代码不可用的生物识别信息,为什么?

html - 如何对齐和调整 Bootstrap 列的大小?

CSS使图像填充可用宽度

iPhone:无法在drawRect之外的屏幕上绘图?

iphone - 使用事件指示器和标签显示警报(可变)

ios - 实现垂直 UIScrollView

html - 浏览器不能缩放到 400px 以下?