iOS设置状态栏样式,statusBarStyle

来源:互联网 发布:mac上的音频处理软件 编辑:程序博客网 时间:2024/05/17 03:18

1、在不同的应用中,有关状态栏的样式是不定的,系统的默认样式是黑色的,然而有一些应用是需要白色的,所以就需要进行相关的设置,设置状态栏的样式有2种方式,下面分别讲述一下。 
2、方法一:

直接在需要改变默认状态栏样式的控制器中实现一个方法(其他任何事情都不用做):

<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 返回状态栏的样式</span>- (UIStatusBarStyle)preferredStatusBarStyle{    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> UIStatusBarStyleLightContent;}<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 控制状态栏的现实与隐藏</span>- (<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">BOOL</span>)prefersStatusBarHidden{    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">YES</span>;}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul>

这个方法会在界面调用的时候实现,并且只能作用于实现此方法的当前控制器中,对其他界面的设置不产生任何影响(如果所有控制器都没有设置,当当前控制器消失的时候,状态栏会恢复至系统默认的状态)。

利用这种方式设置后,[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;这种设置方式无论在什么地方设置都是不起作用的。

3、方法二: 
在info.plist文件中添加一个属性航,选中表空白地方,右键选中Add Row, 然后在列表中选中最后一个选项,也就是View controller-based status bar appearance,设置为No(不支持在文件中设置状态栏样式),然后在AppDelegate中写上[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent,这样的话,全局的状态栏样式就OK了。其他的界面如果想要改变样式的话,直接用 
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;修改就可以了。

0 0