一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - iOS開發技巧之狀態欄字體顏色的設置方法

iOS開發技巧之狀態欄字體顏色的設置方法

2021-05-10 13:42夢想家-mxj IOS

有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧

狀態欄的字體為黑色:UIStatusBarStyleDefault

狀態欄的字體為白色:UIStatusBarStyleLightContent

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

狀態欄字體的顏色只由下面的屬性設定,默認為白色:

?
1
2
// default is UIStatusBarStyleDefault
[UIApplication sharedApplication].statusBarStyle

解決個別vc中狀態欄字體顏色不同的辦法

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

2、在app delegate中:

?
1
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

3、在個別狀態欄字體顏色不一樣的vc中

?
1
2
3
4
5
6
7
8
9
-(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設為YES,或者沒有設置。

View controller-based status bar appearance的默認值就是YES。

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

[UIApplication sharedApplication].statusBarStyle 無效。

用下面的方法:

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

?
1
2
3
4
5
-(UIStatusBarStyle)preferredStatusBarStyle
{
 
return UIStatusBarStyleDefault;
}

2、在viewDidload中調用: [self setNeedsStatusBarAppearanceUpdate];

但是,當vc在nav中時,上面方法沒用,vc中的preferredStatusBarStyle方法根本不用被調用。

原因是, [self setNeedsStatusBarAppearanceUpdate]發出后,

只會調用navigation controller中的preferredStatusBarStyle方法,

vc中的preferredStatusBarStyley方法跟本不會被調用。

解決辦法有兩個:

方法一:

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

?
1
2
3
4
5
6
7
8
9
10
11
//status bar的字體為白色
 
//導航欄的背景色是黑色。
 
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
 
//status bar的字體為黑色
 
//導航欄的背景色是白色,狀態欄的背景色也是白色。
 
//self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

方法二:

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MyNav* nav = [[MyNav alloc] initWithRootViewController:vc];
 
self.window.rootViewController = nav;
 
@implementation MyNav
 
- (UIStatusBarStyle)preferredStatusBarStyle
 
{
 
UIViewController* topVC = self.topViewController;
 
return [topVC preferredStatusBarStyle];
 
}

附:修改狀態欄的背景顏色 (牽扯到UIWindow的層級關系)

?
1
2
3
4
/*改變狀態欄的背景顏色,因為狀態欄的層級比較高,所以按照如下添加就可以出來效果*/
UIView* stateView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, SCREEN_WIDTH, 20)];
[self.navigationController.navigationBar addSubview:stateView];
stateView.backgroundColor = [UIColor purpleColor];

備注: 因為在OC中,都應該知道UIWindow有三個層級,如下:

UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar

它們層級的優先級的值分別對應的是:

UIWindowLevelNormal: 0

UIWindowLevelAlert: 1000

UIWindowLevelStatusBar:2000

(而且UIAlertView的層級優先級為1996,UIActionSheet的層級優先級為2001)
優先級

總結:

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://blog.csdn.net/iosbird/article/details/52768344

延伸 · 閱讀

精彩推薦
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
主站蜘蛛池模板: 久久这里只有精品国产精品99 | av91在线 | 色图大全 | a黄毛片| 日本高清va不卡视频在线观看 | 91制片厂果冻星空传媒3xg | 日本久久影视 | 亚洲黄色图 | 男人狂擦女人的下面视频 | 免费日本在线 | 精品亚洲综合久久中文字幕 | 久久性生大片免费观看性 | 九九精品国产亚洲A片无码 九九99热久久999精品 | 日本草草视频 | 国产精品特黄毛片 | 美女扒开粉嫩尿口漫画 | 免费成人在线观看视频 | 青草视频在线观看免费网站 | 久久黄色精品视频 | 亚洲毛片免费看 | 2019国内精品久久久久久 | 国产成人啪精品午夜在线播放 | 暖暖 免费 高清 日本 在线 | 欧美爽妇 | 免费精品国产在线观看 | 国产精品不卡 | 成人福利网站含羞草 | 国产男女爱视频在线观看 | 国产成人久视频免费 | 天天综合色天天综合网 | 青草青草久热精品视频在线网站 | 欧美专区亚洲 | 99re这里只有精品视频在线观看 | 香蕉久久一区二区不卡无毒影院 | 91破解版| 国内精品伊人久久大香线焦 | 日韩精品亚洲专区在线影视 | 高清不卡免费一区二区三区 | 日本xxxⅹ69xxxx护士 | 日韩亚洲欧美综合一区二区三区 | 男人女人叉叉叉 |