您的位置:首页 > 移动开发 > IOS开发

iOS开发(你不知道的小细节)之---状态栏

2014-08-06 11:00 246 查看
状态栏,UIStatusBar显示了基本的信息,如电量、运营商等。除非你的应用是全屏,否则他会显示在界面的最顶端,这个占用屏幕宽度高20个Point的状态栏到底有哪些特性呢?在iOS6和iOS7之后的版本又又哪些区别呢?

在iOS6下,如果statusBarStyle为UIStatusBarStyleDefault的话,则状态栏的颜色会自动随着导航栏的颜色变化而变化,其颜色为导航栏的平均颜色;如果修改StatusBarStyle为UIStatusBarStyleBlackOpaque或UIStatusBarStyleBlackTranslucent后就固定为不透明黑色和透明黑色,字体为白色,不再随导航栏变化了。

在iOS6下,状态栏占用单独的20个点得高度,所有视图控制器的View的坐标都是在之下开始算起的。

在iOS6下,statusBarStyle默认为UIStatusBarStyleDefault,背景色和文字颜色随着导航栏的变化而变化,如果没有导航栏则是黑底白字。

在iOS7下,statusBarStyle默认为UIStatusBarStyleDefault,但是它是透明背景色,而且它的文字颜色为黑字。

在iOS7下,状态栏不再有背景色,它是透明的背景色,他得背景色与离它最近的视图背景一致),而且它不再单独占用20个点的高度

在iOS7下,工程的info.plist配置文件中新增了一个属性View controller-based status bar appearance,默认是yes。(iOS6下此值不影响)它的意思说明,状态栏的背景色和文字颜色是基于视图控制器中视图的变化而变化的,所以当此值为NO时,设置UIApplication的statusBarStyle,statusBarHidden属性才有效果,当此值为yes时,重写UIViewController的如下两个方法来设置状态栏的背景色、字体颜色和隐藏属性:

[self setNeedsStatusBarAppearanceUpdate];//更新动画状态
- (UIStatusBarStyle)preferredStatusBarStyle{
returnUIStatusBarStyleLightContent;
}
- (BOOL)prefersStatusBarHidden{
return NO;
}
- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation{
returnUIStatusBarAnimationNone;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: