所以,我正在努力做到这一点:
我尝试在状态栏后面使用UIView并将颜色设置为橙色,但在运行时,UIView显示在状态栏的正下方,所以它仍然是白色
我在互联网上尝试了很多解决方案,但没有一个能够正常工作.是的它有效但当我移动到其他视图控制器并再次返回时,颜色消失了.我该怎么办?我正在使用swift
在iOS 11中,UIWebView由状态栏弹出.它可能会受到iOS 11引入的安全区域插入的影响.我尝试将属性contentInsetAdjustmentBehavior设置如下:
webView.scrollowView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentAlways
Run Code Online (Sandbox Code Playgroud)
有用.但是,对于某些使用-webkit-overflow-scrolling的页面,webView.scrollowView将另一个UIScrollowView(UIWebOverflowScrollView)作为其子视图.如果我没有为该scrollView设置属性contentInsetAdjustmentBehavior,则页面元素将下沉.如果没有为UIWebview的所有scrollView设置属性contentInsetAdjustmentBehavior,则为此问题提供任何其他解决方案.
例如,当我将表视图添加到视图控制器时,视图层次结构会是什么?UIWindow 总是层次结构的基础视图吗?状态栏位于哪一层?
我主要以编程方式编写代码,因此在可视化层次结构时会有一些查询。
我知道,这是一个奇怪的问题^^,
我想知道是否有办法在UIStatusBar中(或上)写一些文本.特别是当用户按下UIButton时,我想在状态栏上写一些文本.
谢谢!
我知道,这听起来很愚蠢,但改变IB中的状态栏颜色,并没有改变任何东西.它总是保持灰色.我可以将代码改为黑色(有效),但在第一次启动时我仍然有这个灰色条.XCode是4.2 beta,现在无法下载新的.
有什么想法吗?
我的状态栏有问题.这是一个iPhone应用程序,而不是iPad应用程序.我想在应用程序的任何地方都有一个黑色半透明状态栏.
我已经设定在应用程序的plist状态栏样式.它设置为黑色半透明.
我的理解是,当设置它时,所有视图的布局将从0,0而不是0,20开始,就像你有一个不透明的状态栏一样.这就是为什么IB允许您选择指定您将使用哪种状态栏的提示,以便它可以模拟它并在IB中正确显示它.(是的,我在IB中的所有视图都设置为显示黑色半透明状态栏).布局从0,0完成,因此状态栏将覆盖您的视图以显示内容.在IB中它工作正常.但在我的应用程序中却没有.
我的应用程序是一个基于标签栏的应用程序,只有其中一个视图看起来正确,即使它们都设置相同.为了使这一个视图起作用,我必须将背景视图图像设置为0,-20,并将主视图设置为NOT剪辑子视图.所以看起来黑色半透明的布局不能正常工作.此外,我所有其他标签视图的设置方式相同,不是剪辑子视图,主背景视图设置为0,-20.但只有在第一个标签中,这实际上"工作".
这是一些图片:
它应该如何(但仍然必须将背景设置为0,-20):

另一个选项卡具有完全相同的设置,如下所示: 
为了确保它是一个没有叠加背景的blacl半透明状态栏,我尝试了它没有背景: 
和替代背景(替代是直蓝色,而不是轻微的拉丝效果): 
因为所有三个不工作的例子(没有背景,实际和替代)的状态栏看起来完全相同,我假设状态栏是正确的排序,黑色半透明,但没有任何背后显示.
我的几个选项卡都有这个问题,并且带有导航控制器的选项卡中循环的所有视图都有这个问题.并且它们都设置为"工作"选项卡,其中"剪辑子视图"设置为NO,背景的原点设置为0,-20
我认为"工作"不起作用,但看起来好像是由于背景视图中的负偏移.我认为它实际应该设置为0,0并且工作.但主要的IB提供的视图的原点设置为0,20并且它是灰色的,所以我无法改变它.
此外,我在一个选项卡上有另一个问题,一个设置选项卡,我使用不同的外观(更多iPhone看),黑色半透明甚至没有生效.我从一个以编程方式构建的视图开始,它显示一个灰色状态栏:

钻取到nib支持的视图,它们看起来一样:
并且这些视图被布置为好像它是一个灰色状态栏,下降20像素(在IB中它们被设置为黑色半透明,所以我将它们放置了20像素更高)
我已尝试以编程方式设置状态栏样式以及app plist条目,但它没有任何效果(在任何这些选项卡上).
几个星期以来,我一直在研究这个问题(Google,stackoverflow,apple.com).但没有发现我应该做什么的迹象.
ETA: wantsFullScreenLayout解决了其中一个问题,所以我将其标记为已解决.我已经针对最初提出的两个问题中的一个问题更新了一个新问题,包括新的图片,描述等以及更适用的标题,因为问题不是uistatusbar本身.新问题出现了
新问题
我想通过按下按钮将状态栏的颜色从白色更改为黑色,PROGRAMMATICALLY仅在单个ViewController中
这是代码:
- (UIStatusBarStyle)preferredStatusBarStyle {
NSLog(@"PreferredStatusBarStyle");
if(nav_bar.alpha==1)
{
NSLog(@"->UIStatusBarStyleBlackOpaque");
return UIStatusBarStyleBlackOpaque;
}
else
{
NSLog(@"->UIStatusBarStyleLightContent");
return UIStatusBarStyleLightContent;
}}
Run Code Online (Sandbox Code Playgroud)
然后,当我按下按钮动作是:
[self setNeedsStatusBarAppearanceUpdate];
Run Code Online (Sandbox Code Playgroud)
但这不起作用!
当我按下按钮日志时,根据navbar.alpha写入正确的状态,但状态栏文本颜色保持UIStatusBarStyleBlackOpaque,就像出现视图时一样.
黑色
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
Run Code Online (Sandbox Code Playgroud)
白色
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)
但是我想知道我可以设置一些其他颜色吗?真的我想要这个,因为我的所有应用程序设计都变得丑陋,白色和黑色;(
我知道这是不可能的,但仍然在这里问,有人可能知道是否有办法.
现在,如果没有办法,我计划的是创建自定义视图并将我在状态栏中看到的所有内容放到我的视图中,如下所示,但是从黑到绿.

有什么方法可以收集状态栏的所有信息吗?
我将设法根据通知刷新视图,但我想找到我们可以收集状态栏的所有内容的方式.
最重要的是,是否允许?
我想要的是如下.

我想将status bar(显示时钟和电池的顶部的小条带)的颜色设置为带有白色文本的黑色背景.我怎样才能做到这一点 ?
到目前为止我的方法:
我在中添加了以下内容 info.plist
View controller-based status bar appearance --> NO
Run Code Online (Sandbox Code Playgroud)
并在 viewController
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleDefault;
}
Run Code Online (Sandbox Code Playgroud)
但是,风格不会改变.如何使状态栏变黑?
下面是我的代码,我试图通过状态栏获得信号强度.
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
Run Code Online (Sandbox Code Playgroud)
发生崩溃(iOS 11,Xcode 9,iPhone X): -
[UIStatusBar_Modern valueForUndefinedKey:]:此类不是键值前景视图的键值编码兼容
uistatusbar ×10
ios ×5
objective-c ×4
iphone ×3
ios11 ×2
statusbar ×2
ios7 ×1
iphone-x ×1
layout ×1
swift ×1
translucency ×1
uiscrollview ×1
uiview ×1
uiwebview ×1
xcode ×1
xcode9 ×1