有時(shí)候我們需要根據(jù)不同的背景修改狀態(tài)欄字體的顏色窄刘,我的方法比較復(fù)雜舷胜,如果有更好用的方法歡迎大家提出來(lái),我會(huì)持續(xù)更新的翻伺。
方法一
1.首先是設(shè)置info.plist 文件:
將View controller-based status bar appearance 的值設(shè)置為NO。
2.在AppDelegate.m 的方法中如下設(shè)置,默認(rèn)會(huì)顯示黑色等于為你的app狀態(tài)欄設(shè)置一個(gè)主顏色
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//設(shè)置全局狀態(tài)欄字體顏色為黑色
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
//設(shè)置全局狀態(tài)欄字體顏色為白色
// [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
return YES;
}
3.在需要設(shè)置為白色的地方添加如下代碼:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
4.在需要變回黑色的地方添加如下代碼:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
例如你想將一個(gè)控制器的狀態(tài)欄的字體顏色設(shè)為白色代碼如下:
#pragma mark - 設(shè)置狀態(tài)欄顏色
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}
這里要注意,在UITabBarController中如果選項(xiàng)卡每個(gè)頁(yè)面都加載出來(lái),那么在你切換頁(yè)面時(shí),會(huì)先調(diào)用下一個(gè)頁(yè)面的viewWillAppear方法,再調(diào)用本頁(yè)面的viewWillDisappear方法,會(huì)影響狀態(tài)欄的字體顏色改變.