我的应用程序背景是黑色的,但在iOS 7中,状态栏变成了透明的。所以我什么也看不见,只有角落里的绿色电池指示灯。如何将状态栏文本颜色改为白色,就像在主屏幕上一样?
当前回答
改变所有viewcontroller的状态栏文本颜色
斯威夫特3
if在Info.plist中查看基于控制器的状态栏外观= YES
然后使用这个扩展为所有NavigationController
extension UINavigationController
{
override open var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
如果没有UINavigationController,只有UIViewController,那么使用下面的代码:
extension UIViewController
{
override open var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
objective - c
创建类别类
对于UIView控制器
在ui + StatusBarStyle.h
@interface UIViewController (StatusBarStyle)
@end
在ui + StatusBarStyle.m
#import "UIViewController+StatusBarStyle.h"
@implementation UIViewController (StatusBarStyle)
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
@end
对于UINavigationController
在UINavigationController + StatusBarStyle.h
@interface UINavigationController (StatusBarStyle)
@end
在UINavigationController + StatusBarStyle.m
#import "UINavigationController+StatusBarStyle.h"
@implementation UINavigationController (StatusBarStyle)
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
@end
其他回答
总结一下,编辑你的项目信息。Plist并添加:
基于视图控制器的状态栏外观:NO
状态栏样式:不透明的黑色样式
或者如果你有raw key/value plist
uiviewcontrollerbasedstatusbar外观:NO
UIStatusBarStyle:不透明黑色风格
对我来说,使用其他答案(以及其他来源/文档)中的所有东西都没有发生任何事情。真正有帮助的是在XIB中将导航栏样式设置为“黑色”。这在没有任何代码的情况下将文本更改为白色。
我在一个Swift项目中使用Xcode 6 beta 5,用于iOS 7应用程序。
以下是我所做的,而且很有效:
info.plist:
如果你有一个通过Interface Builder创建的嵌入式导航控制器,请确保在管理导航控制器的类中设置以下内容:
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
这应该就是你所需要的。
在iOS 8中: add NavigationController.NavigationBar.BarStyle = UIBarStyle.Black;对viewDidLoad
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- Ios模拟器:如何关闭应用程序
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- 如何舍入一个双到最近的Int在迅速?
- 扁平化数组的数组在Swift
- Swift:声明一个空字典
- 在成功提交我的应用程序后,“太多符号文件”
- 从数组中随机选择一个元素
- 首先添加一个UIView,甚至是导航栏
- 我如何改变UIButton标题颜色?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件
- CFNetwork SSLHandshake iOS 9失败