我在状态栏方面遇到了一些问题。这是一个iPhone应用程序,而不是iPad应用程序。我希望在整个应用程序中都有一个黑色半透明的状态栏。
我已经在应用程序的plist中设置了状态栏样式。它被设置为黑色半透明。
我的理解是,当此设置被设置时,所有视图的布局将从0,0开始,而不是像不透明状态栏时那样从0,20开始。这就是为什么IB会给你指定一个提示,告诉它你将使用哪种类型的状态栏,以便它可以模拟并在IB中正确显示它。(是的,我在IB中所有的视图都设置为显示黑色半透明的状态栏)。布局是从0,0开始的,这样状态栏就可以覆盖你的视图以显示其中的内容。在IB中它工作得很好。但在我的应用程序中它却不行。
我的应用程序是基于选项卡的应用程序,尽管它们都设置了相同的内容,但只有一个视图看起来正确。而为了使那个视图正常工作,我必须将背景视图图像设置为0,-20,并将主视图设置为不剪切子视图。因此,似乎黑色半透明布局没有正常工作。此外,我所有其他选项卡视图都以相同的方式设置,不剪切子视图,并将主背景视图设置为0,-20。但只有在第一个选项卡中才实际“起作用”。
以下是一些图片:
应该是这样的(但仍需要将背景设置为0,-20):
另一个选项卡,具有完全相同的设置,看起来像这样:
为了确保它是没有重叠背景的黑色半透明状态栏,我尝试了没有背景:
并且深入到支持nib的视图中,它们看起来相同:
视图的布局就好像是灰色状态栏一样,向下20像素(尽管它们在IB中被设置为黑色半透明,所以我将它们布置得更高了20像素)
我已经尝试通过编程方式设置状态栏样式,并在应用程序plist条目中添加,但没有任何效果(对于这些选项卡中的任何一个都没有效果)。
我已经在Google、stackoverflow和apple.com上进行了几周的研究,但没有发现我应该做什么的迹象。
我已经在应用程序的plist中设置了状态栏样式。它被设置为黑色半透明。
我的理解是,当此设置被设置时,所有视图的布局将从0,0开始,而不是像不透明状态栏时那样从0,20开始。这就是为什么IB会给你指定一个提示,告诉它你将使用哪种类型的状态栏,以便它可以模拟并在IB中正确显示它。(是的,我在IB中所有的视图都设置为显示黑色半透明的状态栏)。布局是从0,0开始的,这样状态栏就可以覆盖你的视图以显示其中的内容。在IB中它工作得很好。但在我的应用程序中它却不行。
我的应用程序是基于选项卡的应用程序,尽管它们都设置了相同的内容,但只有一个视图看起来正确。而为了使那个视图正常工作,我必须将背景视图图像设置为0,-20,并将主视图设置为不剪切子视图。因此,似乎黑色半透明布局没有正常工作。此外,我所有其他选项卡视图都以相同的方式设置,不剪切子视图,并将主背景视图设置为0,-20。但只有在第一个选项卡中才实际“起作用”。
以下是一些图片:
应该是这样的(但仍需要将背景设置为0,-20):
![This is how it should look](https://istack.dev59.com/qyYdQ.webp)
![bad another tab](https://istack.dev59.com/y14LN.webp)
![no background](https://istack.dev59.com/FFrFH.webp)
并提供另一种背景(备选是纯蓝色而不是轻微的刷状效果):
因为所有三个不工作示例(无背景,实际和替代)上的状态栏看起来完全相同,我认为状态栏是正确的排序,黑色半透明,但没有任何东西在它后面显示。
我的几个选项卡都有这个问题,并且所有循环浏览选项卡中的视图都有这个问题。它们都设置为与“工作”选项卡相同,“剪辑子视图”设置为NO,背景的原点设置为0,-20
我认为“工作”的那个并没有工作,只是由于背景视图中的负偏移而看起来像是。我认为它实际上应该设置为0,0并工作。但是主要的IB提供的视图其原点设置为0,20,所以我不能更改它。
此外,我在一个选项卡上有另一个问题,即设置选项卡,我使用不同的外观(更像iPhone),但黑色半透明效果甚至没有生效。我从编程构建的视图开始,它显示灰色状态栏:![settings programmatically constructed](https://istack.dev59.com/yRcXC.webp)
![settings nib backed](https://istack.dev59.com/jkhQo.webp)
我已经尝试通过编程方式设置状态栏样式,并在应用程序plist条目中添加,但没有任何效果(对于这些选项卡中的任何一个都没有效果)。
我已经在Google、stackoverflow和apple.com上进行了几周的研究,但没有发现我应该做什么的迹象。
预计完成时间: wantsFullScreenLayout
解决了其中一个问题,因此我将其标记为已解决。我已经开了一个新的问题,更新了原本提出的两个问题之一的问题,附有新的图片、描述等,并更改了适用的标题,因为问题不在于 uistatusbar 本身。新问题位于 new problem。
[[self window] setRootViewController:[self tabBarController]];
(是的,我有点老派),其中 tab bar controller 在 MainWindow.xib 中。所有的 VC 都没有在它们的viewDidLoad
或viewWillAppear:
中写任何布局代码。这就是为什么我感到困惑的原因。 - chadbag