我的应用程序背景是黑色的,但在iOS 7中,状态栏变成了透明的。所以我什么也看不见,只有角落里的绿色电池指示灯。如何将状态栏文本颜色改为白色,就像在主屏幕上一样?
当前回答
让我来完整地回答你的问题。改变状态栏文本的颜色非常简单,但是在ios7中对新手来说有点混乱。
如果你试图通过选择视图控制器并在右侧选择模拟度量来将Storyboard中的颜色从黑色改为白色,它不会工作,我不知道为什么。它应该通过这样的改变来工作,但无论如何。
其次,你不会在你的plist中找到UIViewControllerBasedStatusBarAppearance属性,但默认情况下它不在那里。你必须自己添加它,点击+按钮,然后设置为NO。
ios7状态栏的文本颜色
最后,你需要到AppDelegate。然后在didFinishLaunchingWithOptions方法中添加如下内容,添加如下一行:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
这将改变所有视图控制器的颜色为白色。希望这能有所帮助!
其他回答
如果你有一个通过Interface Builder创建的嵌入式导航控制器,请确保在管理导航控制器的类中设置以下内容:
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
这应该就是你所需要的。
在Xcode中最简单的方法(不需要任何编码)是:
添加基于视图控制器的状态栏外观到您的信息。plist,设置为NO。 现在,转到项目目标,在部署信息中,你会发现一个状态栏样式的选项。将此选项的值设置为Light。
你会看到白色状态栏。
如果你的UIViewController在UINavigationController中,你必须设置BarStyle:
-[UINavigationBar setBarStyle:UIBarStyleBlack]
原始答案在这里
https://devforums.apple.com/message/844264#844264
在Swift 3非常简单,只需2步。 去你的信息。将基于视图控制器的状态栏外观更改为“NO”。 然后在Appdelegate中在didfinishlaunchingwithoptions方法中添加这一行
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
return true
}
这在iOS9中已经被弃用,现在你应该在rootviewcontroller中重写这个属性
这样做在iOS 9中已经被弃用,应该在rootviewcontroller上这样做
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
如果我使用UINavigationController,我在iOS 9和Swift 2.0中做这个
self.navigationController?.navigationBar.barStyle = UIBarStyle.Black
如果我使用模态segue
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- Ios模拟器:如何关闭应用程序
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- 如何舍入一个双到最近的Int在迅速?
- 扁平化数组的数组在Swift
- Swift:声明一个空字典
- 在成功提交我的应用程序后,“太多符号文件”
- 从数组中随机选择一个元素
- 首先添加一个UIView,甚至是导航栏
- 我如何改变UIButton标题颜色?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件
- CFNetwork SSLHandshake iOS 9失败