我的应用程序背景是黑色的,但在iOS 7中,状态栏变成了透明的。所以我什么也看不见,只有角落里的绿色电池指示灯。如何将状态栏文本颜色改为白色,就像在主屏幕上一样?
当前回答
注:最高赞数的答案不适用于iOS 7 / 8
在信息。plist设置“视图基于控制器的状态栏外观”为NO
在AppDelegate中添加
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
to
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
...
}
此解决方案适用于iOS 7 / 8。
其他回答
你不需要为此做任何代码
你需要在信息中添加“基于控制器的状态栏外观”键。请填写如下:
并将其值类型设置为布尔值,值设置为NO。 然后单击项目设置,然后单击“常规”选项卡并在“部署信息”下将首选状态栏样式设置为。light,如下所示:
这是它。
简单地调用
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
在
-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}
我的AppDelegate的方法在iOS7中非常适合我。
这个解决方案适用于使用新的SwiftUI Lifecycle / iOS 14.0的应用程序:
我需要动态更改状态栏文本颜色,无法访问窗口。rootViewController,因为SwiftUI生命周期中不存在SceneDelegate。
我终于找到了Xavier Donnellon的简单解决方案:https://github.com/xavierdonnellon/swiftui-statusbarstyle
复制StatusBarController.swift文件到你的项目中,并将你的主视图包装成一个RootView:
@main
struct ProjectApp: App {
var body: some Scene {
WindowGroup {
//wrap main view in RootView
RootView {
//Put the view you want your app to present here
ContentView()
//add necessary environment objects here
}
}
}
}
然后你可以通过使用。statusbarstyle (. darkcontent)或。statusbarstyle (. lightcontent)视图修饰符来改变状态栏文本的颜色,或者直接调用例如UIApplication.setStatusBarStyle(. lightcontent)。
不要忘记在Info.plist中设置“基于视图控制器的状态栏外观”为“YES”。
您不需要编写任何代码就可以做到这一点! 做以下使状态栏文本颜色白色通过整个应用程序
在你的项目plist文件中:
状态栏样式:透明黑色样式(alpha值为0.5) 基于视图控制器的状态栏外观:NO 状态栏初始隐藏:NO
简单地在应用程序委托:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
在Swift 5中,遵循以下步骤:
在Info.plist中添加key UIViewControllerBasedStatusBarAppearance并将value设置为false 添加键UIStatusBarStyle和设置值UIStatusBarStyleLightContent
推荐文章
- 更改UITextField和UITextView光标/插入符颜色
- 如何使用@Binding变量实现自定义初始化
- 'Project Name'是通过优化编译的——步进可能会表现得很奇怪;变量可能不可用
- Swift设置为Array
- 如何设置回退按钮文本在Swift
- 我如何能在Swift扩展类型化数组?
- Swift类错误:属性未在super处初始化。init调用
- 模拟器慢动作动画现在打开了吗?
- 如何为TableView创建NSIndexPath
- 滑动删除和“更多”按钮(就像iOS 7的邮件应用程序)
- 使UINavigationBar透明
- 如何改变推和弹出动画在一个基于导航的应用程序
- 删除/重置核心数据中的所有条目?
- Swift to Objective-C头未在Xcode 6中创建
- setNeedsLayout vs. setNeedsUpdateConstraints和layoutIfNeeded vs. updateConstraintsIfNeeded