标签: uistatusbar

如何在iOS中更改状态栏文本颜色

我的应用程序背景较暗,但在iOS 7中,状态栏变得透明.所以我看不到任何东西,只有角落里的绿色电池指示灯.如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?

statusbar textcolor ios uistatusbar ios7

975
推荐指数
38
解决办法
59万
查看次数

不调用preferredStatusBarStyle

我跟着这个线程来覆盖-preferredStatusBarStyle,但它没有被调用.我可以更改任何选项以启用它吗?(我在我的项目中使用XIB.)

uikit ios uistatusbar ios7

250
推荐指数
13
解决办法
12万
查看次数

iOS 7:UITableView显示在状态栏下

我的应用程序的第一个屏幕是UITableViewController没有导航栏,这意味着内容在状态栏下流动,因此存在大量文本冲突.我已经调整了两个属性Under top bars,Adjust scroll view insets哪些实际上阻止了它滚动,但代价是保持表视图的顶部.我试图将UITableView帧设置为偏移20像素,但它似乎没有生效,因为我目前需要该应用程序与iOS 6兼容我无法跳转到iOS 7 Storyboards强制自动布局使用顶部高度指南.有没有人找到适用于这两个版本的解决方案?

事情我已经尝试:设置edgesForExtendedLayout,故事情节中更改设置Under top barsAdjust scroll view,迫使帧到一个新的领域.

一张图片胜过千言万语: 状态栏下的流量

ios uistatusbar ios7

219
推荐指数
8
解决办法
15万
查看次数

如何在Swift 3中设置状态栏样式

我正在使用Xcode 8.0 beta 4.

在以前的版本中,UIViewController具有设置状态栏样式的方法

public func preferredStatusBarStyle() -> UIStatusBarStyle
Run Code Online (Sandbox Code Playgroud)

但是,我发现它在Swift 3中改为"Get ONLY varaiable".

public var preferredStatusBarStyle: UIStatusBarStyle { get } 
Run Code Online (Sandbox Code Playgroud)

如何在我的UIViewController中提供使用的样式?

uiviewcontroller ios uistatusbar swift ios-statusbar

174
推荐指数
20
解决办法
17万
查看次数

UIStatusBarStyle PreferredStatusBarStyle在iOS 7上不起作用

在我使用Xcode 5 for iOS 7构建的iPhone应用程序UIViewControllerBasedStatusBarAppearance=YESinfo.plist,我设置了ViewController这个代码:

-(UIStatusBarStyle) preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)

但状态栏在黑色背景下仍然是黑色的.

我知道它可以通过设置这个程序范围的更改UIViewControllerBasedStatusBarAppearance=NOinfo.plist,但我确实需要改变这种对viewControllerviewController基础在运行时.

iphone uistatusbar ios7 xcode5

110
推荐指数
9
解决办法
8万
查看次数

如何防止UINavigationBar覆盖iOS 7中的顶部?

更新到Xcode 5后,我所有应用程序视图中的导航栏都向下移动.下面是一些截图,第一个显示视图中的所有内容,因为它被拉下来,第二个显示所有内容都未触及.搜索栏应从导航栏开始.

所有内容 空闲时的所有内容

有谁知道如何解决这个问题?

编辑:我之前尝试过这个建议:

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;
Run Code Online (Sandbox Code Playgroud)

但它产生了非常奇怪的结果.

解决方案尝试

这可能是因为我在此视图控制器下面有一个"幻灯片菜单",由于导航栏的透明度而出现.

objective-c uinavigationbar ios uistatusbar ios7

97
推荐指数
5
解决办法
9万
查看次数

在启动画面iOS 7中更改状态栏文本颜色

我知道已经有一些stackoverflow 问题说明了如何更改所有视图控制器的状态栏.我目前正在以这种方式更改状态栏的颜色:

if(IS_IOS7)
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)

在里面 application:DidFinishLaunching

另外,我已将UIViewControllerBasedStatusBarAppearanceplist中的值更改为NO.但是,在启动画面中,它仍会显示带有黑色的状态栏文本.

是否可以在启动画面中更改状态栏文本颜色的颜色?

splash-screen statusbar ios uistatusbar ios7

95
推荐指数
4
解决办法
4万
查看次数

UIStatusBarStyle无法在Swift中运行

我正在尝试将我的Swift应用程序中的状态栏颜色更改为白色,但是我碰到了一堵砖墙.我有3个ViewControllers,每个都嵌入在NavigationController中(可能是问题吗?我已经尝试将代码放在NavigationController类中.)我在AppDelegate的didFinishLaunchingWithOptions中尝试了以下两段代码. .swift文件,但都没有工作.

application.statusBarStyle = .LightContent
Run Code Online (Sandbox Code Playgroud)

UIApplication.sharedApplication().statusBarStyle = .LightContent
Run Code Online (Sandbox Code Playgroud)

Docs关于它的所有内容都是UIBarButtonStyle是一个Int并且给了我这个enum片段,这对我来说并没有任何帮助.

enum UIStatusBarStyle : Int {
    case Default
    case LightContent
    case BlackOpaque
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

ios uistatusbar appdelegate swift xcode6

85
推荐指数
8
解决办法
6万
查看次数

在Swift 3中更改状态栏背景颜色

在XCode 7.3.x中,我使用以下命令更改了StatusBar的背景颜色:

func setStatusBarBackgroundColor(color: UIColor) {
guard  let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
    return
}
statusBar.backgroundColor = color
}
Run Code Online (Sandbox Code Playgroud)

但似乎这不再适用于Swift 3.0.

我尝试过:

func setStatusBarBackgroundColor(color: UIColor) {
guard  let statusBar = (UIApplication.shared.value(forKey: "statusBarWindow") as AnyObject).value(forKey: "statusBar") as? UIView else {
    return
}
statusBar.backgroundColor = color
}
Run Code Online (Sandbox Code Playgroud)

但它给了我:

this class is not key value coding-compliant for the key statusBar.
Run Code Online (Sandbox Code Playgroud)

任何想法如何使用XCode8/Swift 3.0进行更改?

statusbar ios uistatusbar swift swift3

52
推荐指数
6
解决办法
5万
查看次数

IOS7中的UINavigationBar /状态栏问题

最终编辑

(如果需要编辑进行最终编辑,请参阅其他编辑,而不是编写过长的问题).

控制器设置

我有一个应用程序设置如下:

InitialViewController(子类ECSlidingViewController)

主导航控制器(子类UINavigationController)

主要家庭视图控制器(子类UIViewController)


viewDidLoadinitialViewController中,我以主视图控制器为根加载主导航控制器.

self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainNavVC"];
Run Code Online (Sandbox Code Playgroud)

问题

在应用程序的第一次加载时,状态栏和导航栏是分开的. 在此输入图像描述

这是期望的效果.

但是,然后我使用标准方法加载模态视图控制器并关闭它:

[self performSegueWithIdentifier:@"LoadSelectOpponentVC" sender:self];
Run Code Online (Sandbox Code Playgroud)

然后关闭:

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

这反过来导致主导航控制器(保持主视图控制器)错误地显示状态栏并重叠:

在此输入图像描述

测试

  1. plist设置为YES - View controller-based status bar appearance
  2. 我已经尝试设置edgesForExtendedLayout相关的无,但没有改变.

记录

我试图注销一些框架以查看问题发生的位置:

在第一次加载时:

主Nav VC - 查看框架 - {{0,0},{320,480}}

Main Nav VC - Nav Bar Frame - {{0, 0}, {320, 44}}

Initial VC - View Frame - {{0, 0}, {320, 480}}

Home VC - View Frame - …
Run Code Online (Sandbox Code Playgroud)

uinavigationbar uinavigationcontroller uistatusbar ios7

47
推荐指数
4
解决办法
6万
查看次数