use*_*143 14
首先在Plist中设置View controller-based status bar appearance
为NO
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = UIColor.blue
}
UIApplication.shared.statusBarStyle = .lightContent
return true
}
Run Code Online (Sandbox Code Playgroud)
输出屏幕截图如下
不,使用现成的公共API是不可能的.
但随着发布iOS 7
,您可以更改状态栏的外观.因此,我发布了我的解决方法.
通过覆盖以下内容从单个视图控制器preferredStatusBarStyle
:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用该UIApplication statusBarStyle
方法设置状态栏样式.为此,请插入名为"查看基于控制器的状态栏外观"的新密钥,并将值设置为NO.
通过禁用"查看基于控制器的状态栏外观",可以使用以下代码设置状态栏样式.
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)
最后,更改UINavigationBar
属性色调颜色,如下所示
[[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];
Run Code Online (Sandbox Code Playgroud)
您可以在应用程序启动期间或视图控制器的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)
结果如下:
以下是有关状态栏更改的Apple指南/说明.状态栏中仅允许黑暗和浅色(同时为黑色).
这是 - 如何更改状态栏样式:
如果要设置状态栏样式,则应用程序级别将设置UIViewControllerBasedStatusBarAppearance
为NO
".plist"文件.
如果您要在视图控制器级别设置状态栏样式,请按照下列步骤操作:
UIViewControllerBasedStatusBarAppearance
to .YES
.plist
在viewDidLoad中添加功能 - setNeedsStatusBarAppearanceUpdate
覆盖视图控制器中的preferredStatusBarStyle.
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Run Code Online (Sandbox Code Playgroud)
根据状态栏样式设置级别设置.plist的值.
归档时间: |
|
查看次数: |
11684 次 |
最近记录: |