导航栏和状态栏

状态栏

1
2
3
4
5
6
7
8
9
10
11
12
13
    
typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
UIStatusBarStyleDefault = 0, // 白底黑子
UIStatusBarStyleLightContent NS_ENUM_AVAILABLE_IOS(7_0) = 1, // 黑底白字
UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
UIStatusBarStyleBlackOpaque NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
} __TVOS_PROHIBITED;


//默认的值是黑色的
-(UIStatusBarStyle)preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) {
return UIStatusBarStyleDefault;
}

导航栏

1
2
3
4
5
6
7
typedef NS_ENUM(NSInteger, UIBarStyle) {
UIBarStyleDefault = 0,
UIBarStyleBlack = 1,

UIBarStyleBlackOpaque = 1, // Deprecated. Use UIBarStyleBlack
UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
} __TVOS_PROHIBITED;

状态栏颜色设置

source

source

方法1.下面的属性为设置为NO(View controller-based status bar appearance)

source

项目中添加如下设置

1
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

方法2.下面的属性为设置为YES (View controller-based status bar appearance)

avatar

项目中添加如下设置

1
2
3
4
5
6
7
8

- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}

// 以下方法必须设置其中一个(1.隐藏 2.改变style为black)
[self.navigationController setNavigationBarHidden:YES animated:YES];
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];

7.0和6.0关于隐藏状态栏和导航栏

6.0直接调用下面方法

1
2
3
4
5
设置导航栏的样式(为透明)   
[imageNav.navigationBar setBarStyle:UIBarStyleBlackTranslucent];

设置状态栏的样式(为透明)
[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleDefault];

7.0中需要进行如下设置

1
2
3
4
5
//隐藏导航栏
[self.navigationController setNavigationBarHidden:YES animated:YES];

// 隐藏状态栏 (7.0 不在调用该方法)
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationSlide];

状态栏设置7.0 需要调用下面方法

方法1.下面的属性为设置为YES(View controller-based status bar appearance)

avatar

调用如下方法设置

1
2
3
4
5
6
[self prefersStatusBarHidden];
[self setNeedsStatusBarAppearanceUpdate];

- (BOOL)prefersStatusBarHidden {
return YES;
}

方法2.直接设置下面的属性如图所示 (View controller-based status bar appearance/Status bar is initially hidden)

avatar