iOS開發(你不知道的小細節)之---狀態列

來源:互聯網
上載者:User

狀態列,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;

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.