IOS status bar,iosstatusbar

來源:互聯網
上載者:User

IOS status bar,iosstatusbar
從iOS7開始,系統提供了2種管理狀態列的方式
通過UIViewController管理(每一個UIViewController都可以擁有自己不同的狀態列)
通過UIApplication管理(一個應用程式的狀態列都由它統一管理)
在iOS7中,預設情況下,狀態列都是由UIViewController管理的,UIViewController實現下列方法就可以輕鬆管理狀態列的可見度和樣式
狀態列的樣式
- (UIStatusBarStyle)preferredStatusBarStyle; 

狀態列的可見度

- (BOOL)prefersStatusBarHidden; 


如果想利用UIApplication來管理狀態列,首先得修改Info.plist的設定


UIApplication *app = [UIApplication sharedApplication];
[app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
[app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
//    app.statusBarHidden = YES;
//    app.statusBarStyle = UIStatusBarStyleLightContent;


iOS 7 的 status bar 與 nav bar 一體化是個好設計?

舉個例子,下面這類App經過一體化修改後,主介面看上去沒有任何問題,status bar融入的很好,不過這是建立在以下條件上:
nav bar固定,不隨內容滾動而滾動或消失;nav bar背景用色一致,沒有同時使用反差較大的顏色。一旦把這個App的側邊欄滑出來,就會發現問題所在了:
主介面亮色調,側邊欄暗色調,status bar上的黑色元素在側邊欄上就難以辨別;status bar背後的內容雜亂不確定,和status bar的元素有視覺衝突。最近為了根據iOS7 HIG最佳化UI,正好碰到了這一問題,想到的解決方案是這樣的:
仍然按照以前的方法,status bar設定背景色,不透明;status bar的背景使用iOS7預設的system blur(毛半透明效果),但是在把半白半黑的介面高斯模糊後個人感覺分界點的視覺效果並不好;主介面時候status bar的元素為黑色,滑出側邊欄的時候動畫漸層成白色(是否可以實現?),並淡入一條黑色半透明非blur背景,這是個人感覺相對比較好的效果。不知有無更好的方法?求教
 
ios7中怎讓程式使用統一的status bar風格,而不是各個controller都有自己的?

如果controller用自己的,則實現preferredStatusBarStyle and—within方法。如果程式執行過程中preferredStatusBarStyle的傳回值發生變化,那麼調用setNeedsStatusBarAppearanceUpdate如果你不允許view controller調整status bar,那麼設定UIApplication的statusBarStyle,並且在info.plist中設定UIViewControllerBasedStatusBarAppearance為NO。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.