【问题标题】:Opaque white status bar in iOS7iOS7中不透明的白色状态栏
【发布时间】:2014-07-09 18:15:13
【问题描述】:

首先,我知道修改状态栏的两种众所周知的方法是

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];

但是,在默认样式下,状态栏的黑色文本带有清晰的(或半透明的白色 - 我不知道)背景。我的应用程序中的视图在某些点向上滑动,并且可以通过状态栏查看。有没有办法让状态栏背景变成不透明白色?

谢谢

【问题讨论】:

  • 您应该改为调整视图的框架/约束

标签: ios uikit statusbar


【解决方案1】:

我通过创建每个 VC 继承的基本视图控制器来解决这个问题,并将以下内容添加到 viewDidLoad

   //Make status bar opaque
CGRect blocker = CGRectMake(0, 0, self.view.frame.size.width, 20);
ColoredLineSegment *blockerView = [[ColoredLineSegment alloc] initWithFrame:blocker]; //ColoredLineSegment is just a colored in rect
blockerView.color = [UIColor whiteColor];

[[[[UIApplication sharedApplication] windows] objectAtIndex:0] addSubview:blockerView];
[[[[UIApplication sharedApplication] windows] objectAtIndex:0] bringSubviewToFront:blockerView];

【讨论】:

  • 我不知道为什么这没有被选为正确答案。只是一个警告,这会将所有视图控制器的通知栏设置为白色,即使您只将它添加到一个中(可能是由于 UINavigationVC),所以请记住在不需要时隐藏它。
【解决方案2】:

在 AppDelegate.m 中试试这个:

[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:255.0/255 green:255.0/255 blue:255.0/255 alpha:1.0]];

它应该可以工作!

【讨论】:

  • 不。我尝试了“基于视图控制器的状态栏外观”的真假。当它为真时,状态栏的区域就是黑色的。当它为假时,什么都不会改变。
猜你喜欢
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多