Sai*_*aev 1 colors statusbar ios uistatusbar swift
当我将状态栏的背景色更改为本机UIColor.gray时,它也会更改。但是,当我要使用自定义颜色时,它会变成黑色。
UIApplication.shared.statusBarView?.backgroundColor = UIColor.gray
-此代码正常工作。状态栏背景颜色为灰色
UIApplication.shared.statusBarView?.backgroundColor = UIColor(red: 30/255, green: 30/255, blue: 30/255, alpha: 1)
-此代码无法正常工作。状态栏背景颜色为黑色
小智 5
首先,在info.plist文件中设置基于View控制器的状态栏外观属性。
然后在AppDelegate类的didFinishLaunchingWithOptions方法中添加以下代码。
if let status = UIApplication.shared.value(forKey: "statusBar") as? UIView {
status.backgroundColor = UIColor.init(red: 173.0/255.0, green: 173.0/255.0, blue: 44.0/255.0, alpha: 1)
}
UIApplication.shared.statusBarStyle = .lightContent
Run Code Online (Sandbox Code Playgroud)
希望这对您有帮助。
希望这对您在 Swift 4 中有所帮助。看起来像是一个黑客技巧,但确实有效。
您可以在应用程序启动期间或视图控制器的 viewDidLoad 期间设置状态栏的背景颜色。
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
Run Code Online (Sandbox Code Playgroud)
这是结果:
归档时间: |
|
查看次数: |
2717 次 |
最近记录: |