我的应用程序背景是黑色的,但在iOS 7中,状态栏变成了透明的。所以我什么也看不见,只有角落里的绿色电池指示灯。如何将状态栏文本颜色改为白色,就像在主屏幕上一样?
当前回答
这个解决方案适用于使用新的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文件中基于视图控制器的状态栏外观(如果你有create)并重新创建它。 设置状态栏样式为不透明黑色样式
在appDelegate中,在didFinishLaunching下添加以下代码。
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
我做了一些不同的事情,这对我很有效。
在没有更改代码的情况下,我像这样配置了.plist文件:
基于控制器的状态栏外观>否 状态栏样式> UIStatusBarStyleLightContent(简单字符串)
我希望这能有所帮助。
edit
对于每个视图控制器,我改变“状态栏”的模拟度量属性,在故事板中,从“推断”到“轻内容”
简单地调用
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
在
-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}
我的AppDelegate的方法在iOS7中非常适合我。
对于Xcode 5.1:
在.plist的NO中添加“基于视图控制器的状态栏外观”。
在AppDelegate中添加:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
这是所有!
让我来完整地回答你的问题。改变状态栏文本的颜色非常简单,但是在ios7中对新手来说有点混乱。
如果你试图通过选择视图控制器并在右侧选择模拟度量来将Storyboard中的颜色从黑色改为白色,它不会工作,我不知道为什么。它应该通过这样的改变来工作,但无论如何。
其次,你不会在你的plist中找到UIViewControllerBasedStatusBarAppearance属性,但默认情况下它不在那里。你必须自己添加它,点击+按钮,然后设置为NO。
ios7状态栏的文本颜色
最后,你需要到AppDelegate。然后在didFinishLaunchingWithOptions方法中添加如下内容,添加如下一行:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
这将改变所有视图控制器的颜色为白色。希望这能有所帮助!
推荐文章
- CFNetwork SSLHandshake iOS 9失败
- swift语言中的结构与类
- 我如何在Swift连接字符串?
- 请求失败:不可接受的内容类型:文本/html使用AFNetworking 2.0
- 缺少推荐的图标文件-该包不包含iPhone / iPod Touch的应用程序图标,像素为“120x120”,png格式
- 以编程方式创建segue
- 我应该如何从字符串中删除所有的前导空格?- - - - - -斯威夫特
- 如何使用Xcode创建。ipa文件?
- 动态改变UILabel的字体大小
- 在iPhone上确定用户是否启用了推送通知
- 是否有可能禁用浮动头在UITableView与UITableViewStylePlain?
- Swift:理解// MARK
- 错误ITMS-9000:“冗余二进制文件上传。火车1.0版本已经有一个二进制版本上传。
- Swift -转换为绝对值
- Swift编译器错误:“框架模块内的非模块化头”