日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

状态栏背景颜色(转载)

發(fā)布時間:2025/3/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 状态栏背景颜色(转载) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

狀態(tài)欄的字體為黑色:UIStatusBarStyleDefault

狀態(tài)欄的字體為白色:UIStatusBarStyleLightContent

?

一、在info.plist中,將View controller-based status bar appearance設(shè)為NO

?

狀態(tài)欄字體的顏色只由下面的屬性設(shè)定,默認(rèn)為白色:

// default is UIStatusBarStyleDefault

[UIApplication sharedApplication].statusBarStyle

?

解決個別vc中狀態(tài)欄字體顏色不同的辦法

?

1、在info.plist中,將View controller-based status bar appearance設(shè)為NO.

2、在app delegate中:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

?

3、在個別狀態(tài)欄字體顏色不一樣的vc中

?

-(void)viewWillAppear:(BOOL)animated{

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

}

?

-(void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

}

?

二、在info.plist中,將View controller-based status bar appearance設(shè)為YES,或者沒有設(shè)置。

?

View controller-based status bar appearance的默認(rèn)值就是YES。

?

如果View controller-based status bar appearance為YES。

則[UIApplication sharedApplication].statusBarStyle 無效。

?

用下面的方法:

1、在vc中重寫vc的preferredStatusBarStyle方法。

-(UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleDefault;

}

2、在viewDidload中調(diào)用:[self setNeedsStatusBarAppearanceUpdate];

?

但是,當(dāng)vc在nav中時,上面方法沒用,vc中的preferredStatusBarStyle方法根本不用被調(diào)用。

原因是,[self setNeedsStatusBarAppearanceUpdate]發(fā)出后,

只會調(diào)用navigation controller中的preferredStatusBarStyle方法,

vc中的preferredStatusBarStyley方法跟本不會被調(diào)用。

?

解決辦法有兩個:

方法一:

設(shè)置navbar的barStyle 屬性會影響status bar 的字體和背景色。如下。

//status bar的字體為白色

//導(dǎo)航欄的背景色是黑色。

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

?

//status bar的字體為黑色

//導(dǎo)航欄的背景色是白色,狀態(tài)欄的背景色也是白色。

//self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

?

方法二:

自定義一個nav bar的子類,在這個子類中重寫preferredStatusBarStyle方法:

MyNav* nav = [[MyNav alloc] initWithRootViewController:vc];

self.window.rootViewController = nav;

?

@implementation MyNav

?

- (UIStatusBarStyle)preferredStatusBarStyle

{

UIViewController* topVC = self.topViewController;

return [topVC preferredStatusBarStyle];

}

轉(zhuǎn)載于:https://www.cnblogs.com/conan0919/p/5099359.html

總結(jié)

以上是生活随笔為你收集整理的状态栏背景颜色(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。