iOS7 状态栏

来源:互联网 发布:昆明广电网络 编辑:程序博客网 时间:2024/06/06 00:54

状态栏

在iOS7中,状态栏是透明的,就是说,状态栏只有文字没有背景。
这个改动让我颇为意外,因为一直印象中苹果很care状态栏的,之前也曾听说过有应用因为遮挡了状态栏而被Appstore拒绝。
而且苹果之前状态栏提供的三种样式都是以深色底白色字呈现,保证了状态栏的内容清晰易读。
 
而变透明之后就很容易和后面的内容混淆,虽说一般应用不会把内容和状态栏叠合在一起,但是至少,现在的情况是,默认是会叠合的,开发需要从20px像素以下开始布局页面元素才能避免。
 
苹果为了让深色浅色背景均能让状态栏内容清晰显示,提供两种状态栏样式:
 
UIStatusBarStyleDefault = 0 黑色文字,浅色背景时使用
UIStatusBarStyleLightContent = 1 白色文字,深色背景时使用
 
而以下两个旧状态栏样式将被废弃:
UIStatusBarStyleBlackTranslucent = 1
UIStatusBarStyleLightContent = 2
 
还有,iOS7中我们通过ViewController重载方法返回枚举值的方法来控制状态栏的隐藏和样式。
首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;
然后,在UIViewController子类中实现以下两个方法:
1- (UIStatusBarStyle)preferredStatusBarStyle
2{
3    return UIStatusBarStyleLightContent;
4}
5 
6- (BOOL)prefersStatusBarHidden
7{
8    return NO;
9}
 
最后,在需要刷新状态栏样式的时候,调用[self setNeedsStatusBarAppearanceUpdate]方法即可刷新,若果需要以动画形式切换状态栏样式,则用以下方式调用即可:

1[UIView animateWithDuration:0. animations:^{
2    [self setNeedsStatusBarAppearanceUpdate];
3}];
0 0
原创粉丝点击