状态栏的下结论,纠正电瓶栏颜色

iOS开采- 隐敝状态栏(电瓶栏卡塔尔

分为二种意况:

  1. 想要隐蔽有些视图的状态栏, 比方说, 从分界面A, push 到分界面B的时候,
    分界面A原来呈现状态栏, 但是大家需求分界面B不显示状态栏。

这时候, 能够那样做:

在B中实现:

- (void)viewDidLoad
{
    [super viewDidLoad];

    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
    {
        // iOS 7
        [self prefersStatusBarHidden];
        [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
    }
}

- (BOOL)prefersStatusBarHidden
{
    return YES;//隐藏为YES,显示为NO
}

再者, 在plist文件中加多:

设置key:View controller-based status bar appearance 为YES

2.这种相比干脆, 直接持有视图都隐蔽状态栏。也比较轻易。

(在plist里设置):
首先设置key:Status bar is initially hidden 为YES
然后设置key:View controller-based status bar appearance 为NO
就可以兑现全局隐藏状态栏了。

掩盖状态栏(电瓶栏卡塔尔 分为二种处境: 1.
想要隐蔽有个别视图的状态栏, 举例说, 从分界面A, push 到分界面B的时候,
分界面A原来展现状态栏, 不过…

【iOS 开拓】Status Bar 状态栏设置集中

iOS 的 Status Bar 状态栏是一个比较坑的地点,总计一下。

走避电瓶栏共有二种办法:

1:用代码设置

在UIControl里面安装

if ([self
respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]){

[self prefersStatusBarHidden];

[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

}

– (BOOL)prefersStatusBarHidden{

    return YES;//隐藏为YES,显示为NO

}

2:plist里面安装

先设置key:Status bar is initially hidden为YES

接下来设置key:View controller-based status bar appearance为NO

成就,那几个是全局设置

3:plist与代码一块举行设置

先在plist文件中,加入View controller-based status bar
appearance
项,并设置为NO;

//隐讳电瓶栏

[[UIApplication sharedApplication] setStatusBarHidden:YES];

//此办法设置YES为蒙蔽,No为呈现  ios7自此的方法

[[UIApplication sharedApplication] setStatusBarHidden:NO
withAnimation:UIStatusBarAnimationFade];

状态栏

  • 1、在 Info.plist 文件中增加 Status bar is initially hidden设置为
    YES ,这些是隐敝 App 在 LunchScreen时的状态栏。

  • 2、在 Info.plist 文件中加多
    View controller-based status bar appearance 设置为
    NO,这些是隐敝 App 所有 UIViewController时的状态栏。

修正电瓶栏颜色

1.状态栏的二种格局—-白底黑字和黑底白字(UIStatusBarStyleLightContent,UIStatusBarStyleDefault)

先在plist文件中,加入View controller-based status bar
appearance
项,并安装为NO;

2.要更改的VC中增加代码:

– (void卡塔尔(英语:State of Qatar) viewDidAppear:(BOOL卡塔尔国animated{   //黑底白字

[[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleLightContentanimated:NO];

}

– (void) viewDidAppear:(BOOL)animated{

//白底黑字[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleDefaultanimated:NO];

}

个人认为 iOS 的 Status Bar
状态栏也是三个比较坑的地点,所以依然写多少个总结,有遇上那地点问题的对象能够看一下。

Status bar is initially hidden设置为 NO的时候,不管
View controller-based status bar appearance设置为 NO 还是 YES
,都是无效状态栏的下结论,纠正电瓶栏颜色。的!只有 Status bar is initially hidden 设置为 YES
的时候,View controller-based status bar appearance
生效,那个要小心!

Status Bar 状态栏的藏匿

  • 1、在 Info.plist 文件中增添
    View controller-based status bar appearance 设置为NO
  • 2、在 AppDelegate 文件中,实现上边方法(在其他 UIViewController
    中也使得):[UIApplication sharedApplication].statusBarHidden = YES;
  1. 透过安装 Info.plist 文件得以完成状态栏的大局隐讳

若是想要通过代码完成状态栏隐蔽,必得在 Info.plist 文件中增添
View controller-based status bar appearance ,并且必须为 NO
,不然代码不会有别的功效,而且代码只好隐藏所有 UIViewController时的状态栏,不能隐藏在
LunchScreen时的状态栏。

在 Info.plist 文件中加多 Status bar is initially
hidden 设置为 YES ,那些是隐敝 App 在
LunchScreen(招待分界面)时的状态栏。

上边包车型客车法子是局地掩瞒,单个 UIViewController 内的藏身。

在 Info.plist 文件中增多 View controller-based status bar
appearance 设置为 NO,那一个是掩饰 App 在装有 UIViewController
时的状态栏。

  • 1、在 Info.plist 文件中增加 View controller-based status bar
    appearance 设置为 YES 。
  • 2、在须要掩没状态栏的 UIViewController 文件中,插足上边方法:

美高梅开户网址 1

Info.plist

- prefersStatusBarHidden { return YES;}

极度注意:

若是想要通过代码达成某个 UIViewController 状态栏局地掩盖,必须
Info.plist 文件中添加View controller-based status bar
appearance,并且必得设置为 YES ,否则代码不会有别的作用。

当 Status bar is initially hidden 设置为 NO 的时候,不管 View
controller-based status bar
appearance 设置为 NO 还是 YES ,都以没用的,唯有 Status bar is initially
hidden 设置为 YES 的时候, View controller-based status bar
appearance 才生效,这么些要在乎一下。

要分清那多个概念,状态栏分前后两部分:

  1. 通过代码完成状态栏的大局隐蔽

美高梅开户网址 2美高梅开户网址 ,文字部分为藏青,背景有个别为银灰.png

在 Info.plist 文件中增多 View controller-based status bar
appearance 设置为 NO。

  • 文字部分:就是指的来得电瓶、时间等片段。
  • 背景有个别:正是展现灰绿或然图片的背景有些。

在 AppDelegate 文件中,完结上边方法(在任何 UIViewController
中也会有效):

文字部分正是设置展现电池电量时间网络一些标示的颜色,
这里必须要设置两种颜色:

/* OC */[UIApplicationsharedApplication].statusBarHidden =YES;/*
Swift */UIApplication.sharedApplication().statusBarHidden =true;

//默认的黑色UIStatusBarStyleDefault//白色UIStatusBarStyleLightContent

极度注意:

1、通过设置 Info.plist文件全局设置状态栏的文字颜色

如果想要通过代码实现状态栏蒙蔽,必需在 Info.plist 文件中增多 View
controller-based status bar
appearance ,何况必得设置为 NO ,不然代码不会有其它作用,并且代码只可以掩没App 在全数 UIViewController 时的状态栏,不能隐敝在
LunchScreen(招待分界面)时的状态栏。

在 Info.plist 里扩张风姿罗曼蒂克行
UIStatusBarStyle( Status bar style 也可以),这里可以设置七个值,便是地点提到那四个
UIStatusBarStyleDefaultUIStatusBarStyleLightContent

  1. 透过代码达成状态栏的有的隐瞒

2、通过代码 全局安装状态栏的文字颜色

地点的情势是大局遮盖,是掩瞒 App 在具备 UIViewController
时的状态栏,下边包车型客车法子是有些隐敝,是单个 UIViewController 内的隐蔽。

  • 在 Info.plist 文件中增添 View controller-based status bar appearance
    设置为 NO (理论同上,必需增加且必得安装为 NO ,不然不奏效)。

  • 在 AppDelegate 文件中,实现上边方法(在别的 UIViewController
    中也使得):

在 Info.plist 文件中增添 View controller-based status bar
appearance 设置为 YES。

在须要隐蔽状态栏的 UIViewController 文件中,参与上面方法:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

/* OC */- (BOOL)prefersStatusBarHidden {returnYES;}/* Swift
*/override func prefersStatusBarHidden() -> Bool {returntrue;}

3、通过代码 局部安装状态栏的文字颜色

极度注意:

  • 在 Info.plist 文件中增多 View controller-based status bar appearance
    设置为 YES (理论同上,必需增加且必得安装为 YES ,不然不奏效) 。

  • 在供给安装情状栏颜色的 UIViewController 文件中,出席下边方法:

假如想要通过代码完毕有个别 UIViewController
状态栏局部掩盖,必得在 Info.plist 文件中增多 View controller-based
status bar appearance ,并且必得设置为 YES ,不然代码不会有其余功能。

Status Bar 状态栏的水彩

- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent;}

动静栏分前后两有的,要分清那些概念,前面会用到:

当 UIViewController 在 UINavigationController 导航栏中时,上边方法没用,
preferredStatusBarStyle 方法根本不会被调用,因为 UINavigationController
中也可能有 preferredStatusBarStyle 那一个法子。

文字部分:正是指的显得电瓶、时间等片段。

清除办法有多个:

艺术意气风发: 设置导航栏的 barStyle 属性会潜移默化 status bar 的字体和背景观

/* 字体为白色,状态栏和导航栏背景为黑色 */self.navigationController.navigationBar.barStyle = UIBarStyleBlack;/* 字体为黑色,状态栏和导航栏背景为白色 */self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

主意二: 自定义一个 UINavigationController 的子类,在此个子类中重写
preferredStatusBarStyle 这一个方法,那样在 UIViewController 中就一蹴而就了

@implementation MyNavigationController- (UIStatusBarStyle)preferredStatusBarStyle { UIViewController *topVC = self.topViewController; return [topVC preferredStatusBarStyle];}@end

背景某个,正是状态栏的背景颜色,其实系统状态栏的背景颜色一向是透明的情事。当有导航栏时,导航栏背景是怎么着颜色,状态栏正是怎么着颜色;未有导航栏时,状态栏背后的视图时怎么着颜色,它就是何许颜色。

/* 这个方法设置导航栏背景颜色,状态栏也会随之变色 */[self.navigationController.navigationBar setBarTintColor:[UIColor redColor]];

设若想要单独设置情况栏颜色,能够增加以下方法来安装:

/** 设置状态栏背景颜色 @param color 设置颜色 */- setStatusBarBackgroundColor:(UIColor *)color { UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"]; if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) { statusBar.backgroundColor = color; }}

效果图:

美高梅开户网址 3单身设置情状栏背景颜色.png

背景有些:正是显示金红或然图片的背景有些。

美高梅开户网址 4

文字部分为驼灰,背景有个别为原野绿

  1. 设置 Status Bar 的【文字部分】

综上可得来讲,正是设置展现电瓶电量、时间、网络部分标示的颜料,
这里只可以设置三种颜色:

/* 私下认可的青色 */UIStatusBarStyleDefault/* 白色
*/UIStatusBarStyleLightContent

1)通过设置 Info.plist 文件全局设置状态栏的文字颜色

在 Info.plist 里扩张后生可畏行 UIStatusBarStyle( Status bar style
也得以),这里能够安装四个值,正是地点提到那七个 UIStatusBarStyleDefault 和 UIStatusBarStyleLightContent 。

美高梅开户网址 5

Info.plist

2)通过代码全局设置状态栏的文字颜色

在 Info.plist 文件中增加 View controller-based status bar
appearance 设置为 NO(理论同上,必得增多且必得设置为 NO ,不然不见到效果)。

在 AppDelegate 文件中,完毕上面方法(在任何 UIViewController
中也使得):

/* OC */[UIApplicationsharedApplication].statusBarStyle
=UIStatusBarStyleLightContent;/* Swift
*/UIApplication.sharedApplication().statusBarStyle
=UIStatusBarStyle.LightContent;

3)通过代码局地设置状态栏的文字颜色

在 Info.plist 文件中增加 View controller-based status bar
appearance 设置为 YES(理论同上,必须加多且必得安装为 YES ,否则不看到成效)

在急需设置景况栏颜色的 UIViewController 文件中,参与上面方法:

/* OC */- (UIStatusBarStyle)preferredStatusBarStyle
{returnUIStatusBarStyleLightContent;}/* Swift */override func
preferredStatusBarStyle()
->UIStatusBarStyle{returnUIStatusBarStyle.LightContent;}

但是!! 当 UIViewController 在 UINavigationController
导航栏中时,上面方法没用, preferredStatusBarStyle 方法根本不会被调用,因为
UINavigationController 中也可能有 preferredStatusBarStyle 那些办法。

解决办法有八个:

方法一: 设置导航栏的 barStyle 属性会影响 status
bar 的书体和背景观。如下。

/* 状态栏字体为青灰,状态栏和导航栏背景为葱绿
*/self.navigationController.navigationBar.barStyle =UIBarStyleBlack;/*
状态栏字体为葱青,状态栏和导航栏背景为油红
*/self.navigationController.navigationBar.barStyle =UIBarStyleDefault;

方法二: 自定义四个 UINavigationController
的子类,在此个子类中重写 preferredStatusBarStyle 这些点子,那样在
UIViewController 中就卓有功用了,如下:

@implementationMyNavigationController-
(UIStatusBarStyle)preferredStatusBarStyle {UIViewController*topVC
=self.topViewController;return[topVC preferredStatusBarStyle];}@end

  1. 设置 Status Bar 的【背景某些】

背景有个别,轻松的话,正是状态栏的背景颜色,其实系统状态栏的背景颜色平昔是透明的气象,当有导航栏时,导航栏背景是何许颜色,状态栏正是什么颜色,未有导航栏时,状态栏背后的视图时如何颜色,它就是哪些颜色。

/* 那个主意是设置导航栏背景颜色,状态栏也会跟着变色
*/[self.navigationController.navigationBar
setBarTintColor:[UIColorredColor]];

若果想要单独设置景况栏颜色,能够增进以下办法来设置:

/**

设置情形栏背景颜色

@param color 设置颜色

*/- (void)setStatusBarBackgroundColor:(UIColor*)color
{UIView*statusBar = [[[UIApplicationsharedApplication]
valueForKey:@”statusBarWindow”]
valueForKey:@”statusBar”];if([statusBar
respondsToSelector:@selector(setBackgroundColor:)]) {           
statusBar.backgroundColor = color;    }}

效果图:

美高梅开户网址 6

单身设置情状栏背景颜色

好了,关于 Status Bar
状态栏的总括大约就那样多,个中表明了数不完比较坑的细节,英特网海人民广播电台湾大学材质都并未有认证清楚,希望对际遇那地点难题的意中人能具备利于。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图