Swift 4 中的 statusBarStyle
statusBarStyle in Swift 4
这是我在 AppDelegate 中写的代码 class (Swift 4):
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
goToRootViewController()
UINavigationBar.appearance().isTranslucent = true
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
GMSServices.provideAPIKey(googleMapApiKey)
return true
}
但是我的状态栏没有显示浅色内容我不知道发生了什么,有帮助吗?
您是否更改了 info.plist 行 查看 controller-based 状态栏外观 并将其设置为否?
因为这是更改状态栏外观所必需的
而且如果您只想更改特定视图控制器上的状态栏,那么您可以使用
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
具体 ViewController Class:
在您的 viewcontroller class 中使用下面的代码 viewDidLoad() :
override var preferredStatusBarStyle : UIStatusBarStyle {
return .lightContent
}
这将以浅色内容显示您的状态栏
对于整个应用程序:
在您的产品 Info.plist
中设置值为“NO”的“查看 controller-based 状态栏外观”键
然后在“didFinishLaunchingWithOptions”中的 AppDelegate.Swift 中使用以下代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
return true
}
Select 您投影并导航到 Target -> General -> Deployment Info
。其中 Status Bar Style
为 Default
,将其更改为 Light
。
在您的特定控制器的 didLoad 中使用以下代码
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [self colorWithHexString:@"C2BFAB"];//set whatever color you like
// appDel.statusBarColor = NO;
}
Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
在 AppDelegate 函数 -didFinishLaunchingWithOptions
下手动设置 UIApplication.shared.statusBarStyle = .lightContent
似乎不起作用
首先在文件中设置Info.plist
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
第二个:
Target -> General -> Deployment Info
将Status Bar Style
设置为Light
这是我在 AppDelegate 中写的代码 class (Swift 4):
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
goToRootViewController()
UINavigationBar.appearance().isTranslucent = true
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
GMSServices.provideAPIKey(googleMapApiKey)
return true
}
但是我的状态栏没有显示浅色内容我不知道发生了什么,有帮助吗?
您是否更改了 info.plist 行 查看 controller-based 状态栏外观 并将其设置为否? 因为这是更改状态栏外观所必需的
而且如果您只想更改特定视图控制器上的状态栏,那么您可以使用
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
具体 ViewController Class:
在您的 viewcontroller class 中使用下面的代码 viewDidLoad() :
override var preferredStatusBarStyle : UIStatusBarStyle {
return .lightContent
}
这将以浅色内容显示您的状态栏
对于整个应用程序:
在您的产品 Info.plist
中设置值为“NO”的“查看 controller-based 状态栏外观”键然后在“didFinishLaunchingWithOptions”中的 AppDelegate.Swift 中使用以下代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
return true
}
Select 您投影并导航到 Target -> General -> Deployment Info
。其中 Status Bar Style
为 Default
,将其更改为 Light
。
在您的特定控制器的 didLoad 中使用以下代码
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [self colorWithHexString:@"C2BFAB"];//set whatever color you like
// appDel.statusBarColor = NO;
}
Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
在 AppDelegate 函数 -didFinishLaunchingWithOptions
下手动设置 UIApplication.shared.statusBarStyle = .lightContent
似乎不起作用
首先在文件中设置Info.plist
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
第二个:
Target -> General -> Deployment Info
将Status Bar Style
设置为Light