ios状态栏怎么自定义,ios状态栏图标,iOS中状态栏的基本使用方法汇总

ios状态栏怎么自定义,ios状态栏图标,iOS中状态栏的基本使用方法汇总

在iOS开发的过程中,经常会设置状态栏的样式,所以下面这篇文章主要介绍状态栏在iOS中基本使用的相关信息。通过示例代码非常详细的介绍,有需要的朋友可以参考一下。

: 目录

1.状态栏和导航栏2。设置状态栏显示和字体样式4。隐藏启动页面上的状态栏5。与状态栏和导航栏相关的常见宏定义

一、状态栏与导航栏

状态栏:显示时间和电池等信息。

导航栏:显示app页面标题,后退按钮等。

iOS7之前:状态栏和导航栏是分开的;

iOS7之后:状态栏和导航栏合二为一;总导航高度(64)=状态栏高度(20)导航栏内容高度(44)

iPhoneX设备出现后,状态栏高度变为44,导航栏总高度(88)=状态栏(44)和导航栏(44)的内容高度。

二、设置状态栏显隐与字体样式

IOS状态栏可以显示和隐藏,文本的颜色也可以设置。通过将info.plist中基于viewcontroller的状态栏外观属性修改为否或是,状态栏的设置可以分为全局控制和局部控制。

全局控制:通过info.plist设置,或者调用全局方法。

分页控件:通过prefersStatusBarHidden方法在视图控制器中设置。

1.全局控制

默认情况下或手动情况下,基于视图控制器的状态栏外观设置为“否”。在这种情况下,状态栏需要全局设置,有两种设置方式。

1:依次进入目标-常规-部署信息,然后可以进行如下设置:

方法2:代码设置

//1.将状态栏设置为隐藏(是)或显示(否)

[[ui application shared application]setStatusBarHidden:NO];

//2.设置状态栏的字体颜色

//UIStatusBarStyleDefault,black(默认值)

///UIStatusBarStyleLightContent,白色

[[ui application shared application]setStatusBarStyle:UIStatusBarStyleDefault];

注意:

用代码控制全局状态栏,代码的位置很重要;在AppDelegate中编写,设置整个App页面的状态栏样式;

如果需要单独设置一个页面的隐藏状态栏,需要在进入页面时设置隐藏状态栏,在退出页面时设置显示,确保不会影响其他页面的状态栏样式。

2.分页设置

在info.plist中将基于viewcontroller的状态栏外观属性设置为YES,状态栏默认以黑色字体显示。此时全局设置操作无效,需要分页设置修改其样式,即在每个视图控制器或控制器基类中使用以下代码:

-(UIStatusBarStyle)preferred statusbarstyle

{

返回UIStatusBarStyleLightContent//返回白色

//返回UIStatusBarStyleDefault//返回黑色

}

- (BOOL)首选StatusBarHidden {

返回YES//将状态栏设置为隐藏

//返回否;//设置状态栏显示

}

但是,这里有一个问题:如果当前视图控制器是UINavigationController的子视图控制器,则不会调用preferredStatusBarStyle。这是因为导航控制器中的preferredStatusBarStyle能够修改状态栏的样式。有两种方法可以解决这个问题:

1:添加一个子类导航控制器。

我们需要使用一个自定义的子类导航控制器,并向其添加以下代码:

-(UIStatusBarStyle)preferred statusbarstyle {

UIViewController * top VC=self . topviewcontroller;

return[top VC preferredStatusBarStyle];

}

方法二:放弃preferredStatusBarStyle

我们可以通过在当前视图控制器中直接调用以下方法来修改状态栏,而无需使用preferredStatusBarStyle方法。

//状态栏和导航栏的背景色为白色,状态栏的文字为黑色。

self . navigation controller . navigation bar . bar style=UIBarStyleDefault;

//状态栏和导航栏的背景色为黑色,状态栏的文字为白色。

self . navigation controller . navigation bar . bar style=UIBarStyleBlack;

三、设置状态栏背景色

iOS7之后,状态栏和导航栏合并在一起,所以默认情况下,状态栏会随着导航栏的背景色而变化。所以我们可以通过改变导航栏来改变状态栏的背景颜色:

//将状态栏和导航栏设置为不透明。

self . navigation controller . navigation bar . translucent=NO;

//将状态栏和导航栏的背景色设置为橙色。

[self . navigation controller . navigation bar setbartincolor:[ui color orange color]];

当然,我们也可以单独设置状态栏的背景颜色。示例代码如下:

ui view * status bar=[[ui application shared application]valueForKey:@ status bar window "]

valueForKey:@ status bar ];

if([status bar respondsToSelector:@ selector(set background color:)){

status bar . background color=[ui color green color];

}

注意:

如果单独设置页面状态栏的背景色,还是需要在离开页面的时候恢复原样。

四、启动页隐藏状态栏

如果不需要在启动页面上显示状态栏信息,可以将其设置为隐藏。设置方法仍然是修改info.plist你只需要设置状态栏初始隐藏即可。设置为YES后,启动页面将暂时不显示状态栏。操作如下所示:

五、状态栏、导航栏相关的常用宏定义

#pragma标记-设备参数

//屏幕宽度

# define ZS _屏幕宽度[[UIScreen主屏]边界].size.width

//屏幕高度

#定义ZS _屏幕高度[[UIScreen主屏]边界].size.height

//确定设备类型是否为iPhoneX

#定义ZS _ ISIphoneX(ZS _屏幕宽度==375 . f ZS _屏幕高度==812.f?是:否)

//导航栏高度

#定义ZS_NavBarHeight (ZS_ISIphoneX?88华氏度:64华氏度)

//状态栏高度

#定义ZS _ status bareight(ZS _ ISIphoneX?44华氏度:20华氏度)

//导航栏内容高度

#定义ZS_NavBarContentHeight 44.0

//标签栏的高度

#定义ZS_TabBarHeight (ZS_ISIphoneX?49层34层:49层)

相关文章:

IOS导航栏的使用

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

ios状态栏怎么自定义,ios状态栏图标,iOS中状态栏的基本使用方法汇总