《Programming iOS 7》读书笔记 - 窗体大小与状态栏

1、从iOS7开始,状态栏开始变为透明的,根识图占领了整个窗体,包括状态栏后面的20像素高的区域,这种样式无法被改变。iOS6的状态栏是不透明的,窗体的尺寸通常会比屏幕的尺寸要小,可以设置窗体的尺寸为[UIScreen mainScreen].applicationFrame。

2、标题栏与导航栏也变为了透明的,可以通过设置UIViewController的两个属性来改变这种行为(该UIViewController的父亲必须是UINavigationController或者是UITabBarController)。

(1)edgesForExtendedLayout

  UIRectEdgeAll,默认值,意为顶部和底部均有覆盖效果,视图部分位于顶栏和底栏的背后。

  UIRectEdgeNone,均不覆盖,视图位于顶栏和底栏的中间。

  UIRectEdgeTop,仅上部覆盖,视图位于底栏的上部。

  UIRectEdgeBottom,仅下部覆盖,视图位于顶栏的下部。

(2)extendedLayoutIncludesOpaqueBars

  YES,如果edgesForExtendedLayout允许覆盖,则不管顶栏和底栏是否透明,都覆盖。

  NO,默认值,只有当顶栏和底栏透明时才允许覆盖。

3、可以通过topLayoutGuidebottomLayoutGuide来建立约束。

(1)topLayoutGuide保持在状态栏的底部,如果有顶栏,则保持在顶栏的底部。

(2)bottomLayoutGuide保持在底栏的顶部。

4、状态栏的样式可以通过重写根视图控制器的preferredStatusBarStyle方法来设置,允许返回的可选值为UIStatusBarStyleDefaultUIStatusBarStyleLightContent

5、状态栏的显示与隐藏可以通过重写根视图控制器的prefersStatusBarHidden方法来设置,返回YESNO

6、获得状态栏高度的方法有

(1)[UIScreen mainScreen].applicationFrame.size.height

(2)[UIApplication sharedApplication].statusBarFrame.size.height

posted @ 2014-04-09 13:32  be2n2me  阅读(200)  评论(0编辑  收藏  举报