1. 程式人生 > >IOS status bar 配置方法

IOS status bar 配置方法

ios上狀態列就是指的最上面的20畫素高的部分,顯示了電池、時間、運營商等資訊。

可以選擇status bar 之上元素的顏色(黑、白),

  • 預設的黑色(UIStatusBarStyleDefault
  • 白色(UIStatusBarStyleLightContent

在實際使用時有下面設定方式:

可以通過plist 檔案進行配置,在plist裡增加一行 UIStatusBarStyle(或者是“Status bar style”也可以),這裡可以設定兩個值,就是上面提到那兩個。 

使用下面程式碼,可以對status bar進行配置,但是蘋果已經不推薦使用(build 時會產生issue

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    [[UIApplication sharedApplication] setStatusBarHidden:NO];

蘋果推薦使用preferredStatusBarStyle prefersStatusBarHidden方法,但是前提是UIViewControllerBasedStatusBarAppearance plist裡設定為YES

- (BOOL)prefersStatusBarHidden

{

    return NO;

}

- (UIStatusBarStyle)preferredStatusBarStyle

{

    return UIStatusBarStyleLightContent;

}

preferredStatusBarStyle prefersStatusBarHidden方法的呼叫時機是setNeedsStatusBarAppearanceUpdate呼叫後由系統執行。

注意:我們的程式裡一般都是用UINavigationControllerroot,如果是這種情況,那我們自己的UIViewController裡的preferredStatusBarStyle

prefersStatusBarHidden方法根本不會被呼叫;系統會呼叫application.windowrootViewControllerpreferredStatusBarStyle prefersStatusBarHidden方法,解決方法是重定義UINavigationController childViewControllerForStatusBarStyle childViewControllerForStatusBarHidden 方法來找到當前view preferredStatusBarStyle prefersStatusBarHidden方法。程式碼如下:

@interface UINavigationController (StatusBarStyle)

@end

@implementation UINavigationController (StatusBarStyle)

-(UIViewController *)childViewControllerForStatusBarStyle {

    return self.topViewController;

}

-(UIViewController *)childViewControllerForStatusBarHidden {

    return self.topViewController;

}

@end

UIViewControllerBasedStatusBarAppearance plist裡設定為NO。表示status bar 不可在個別viewController 中使用方法preferredStatusBarStyle prefersStatusBarHidden進行配置修改。

總結一下,目前蘋果推薦使用 UIViewControllerBasedStatusBarAppearance = YES; preferredStatusBarStyle prefersStatusBarHidden組合來配置status bar 的顯示效果,但是在UINavigationController引導時需要重寫childViewControllerForStatusBarStyle childViewControllerForStatusBarHidden 方法。

相關推薦

IOS status bar 配置方法

ios上狀態列就是指的最上面的20畫素高的部分,顯示了電池、時間、運營商等資訊。 可以選擇status bar 之上元素的顏色(黑、白), 預設的黑色(UIStatusBarStyleDefault)白色(UIStatusBarStyleLightContent)

iphone免越獄 安卓/IOS shadowsock及配置方法

shadowsocks安卓:傳送門 蘋果傳送門 蘋果操作步驟如下: 第一步:開啟“設定”--“iTunes Store與App Store”--點選你賬號並“退出登入” 第二步:在“iTunes Store與App Store”登入Apple ID(這裡的ID是我給你

iOS Status Bar 隱藏顯示設定

iOS 狀態列隱藏顯示設定   Status Bar 隱藏  1. 在info.plist檔案實現狀態列全域性隱藏 在info.plist檔案中新增Status bar is initially hidden 設定為 YES,這個是隱藏APP在LunchScreen(歡

IOS 知識小集(Status Bar變換)

背景 iOS 中經常會有需要在某個介面改變狀態列顏色或者某個介面隱藏狀態列的需求。而改變狀態列顏色和控制狀態列顯示和隱藏的API,在iOS 的不同版本中也發生了很多變化。 iOS 7以前 在iOS 7之前,狀態列是不佔檢視位置的。每個控制器中的根vi

ios中改變程式的status bar

有兩種: 一、在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中新增 [UIApplication

論UITableViewController被status bar覆蓋的問題(IOS SDK 8.3)

通常我們做一個UITableViewController(以下簡稱tvc)直接開啟,在沒有NavigationController的時候都會是這樣 問題是,你要加一個UINavigationController嗎? 還是像別人一樣不用UITableVie

iOS 開發】Status Bar 狀態列設定彙總

狀態列 個人覺得 iOS 的 Status Bar 狀態列也是一個比較坑的地方,所以還是寫一個總結,有遇到這方面問題的朋友可以看一下。 Status Bar 狀態列的隱藏 1. 通過設定 Info.plist 檔案實現狀態列的全域性隱藏 在 Info.pl

iOS7下status bar相關問題的解決方法

轉載自:http://blog.csdn.net/volcan1987/article/details/14227313 iOS7裡status bar的實現跟iOS6下有寫不一樣,前段時間碰到了這個問題,今天總結下 首先網上有很多解決辦法,但是有些我覺得並沒有按

如何將IOSStatus Bar(狀態列)設定成黑底白字

一般情況下預設的是白底黑字,那麼如何設定呢?首先在工程中選擇targets然後選擇info欄,然後在properties中新增View controller-based status bar appearance(新增的方法就是點中properties中任何一欄

springmvc和json整合配置方法

repl bin blank converter htm spring配置 tpm port 三方 配置方法一 1、導入第三方的jackson包,jackson-mapper-asl-1.9.7.jar和jackson-core-asl-1.9.7.jar。 2、spri

Linux操作系統下/etc/hosts文件配置方法

主機名 進行 問題 解釋 很快 中一 linux 同時 包括 1、關於/etc/host,主機名和IP配置文件   Hosts - The static table lookup for host name(主機名查詢靜態表)   hosts文件是Linux系統中一個負責

j2ee監聽器的實現及配置方法

tin sta j2ee bsp 對象 配置方法 clas http ont j2ee中存在的監聽器有八種,其中四種有關於session 可以分為以下幾類: 生命周期類:監聽對象的創建和銷毀 Interface  ServletRequestListener Interfa

phpunit 生成三種日誌文件的配置方法

complete spa php style highlight bin 方法 cnblogs nco #目錄結構 windows bin目錄下 ├── phpunit.phar ├── phpunit.cmd ├──

iOS 幾種加密方法

字符 shared 唯一性 append utf8 img ict nsh chain iOS常見的幾種加密方法 普通加密方法是講密碼進行加密後保存到用戶偏好設置中 鑰匙串是以明文形式保存,但是不知道存放的具體位置 一. base64加密 base64 編碼是現代密碼學的

Nginx狀態信息(status配置及信息詳解

status;nginx;linux; Nginx狀態信息(status)配置及信息詳解 nginx與php-fpm一樣內建了一個狀態頁,對於想了解nginx的狀態以及監控nginx非常有幫助。為了後續的zabbix監控,我們需要先了解一下nginx的狀態頁。 Ngin

Python的Flask框架使用Redis做數據緩存的配置方法

num pre 設置 span run type con sudo python flask配置redis 首先得下載flask的緩存插件Flask-Cache,使用pip下載。 sudo pip install flask_cache 為應用擴展flask_ca

Windows訪問Linux下的共享目錄的配置方法

cat tab all samb dha server nbsp lan eno user安全級別 第一步:安裝samba3(如果已經安裝就跳過這一步) [[email protected]/* */ /]# yum groupinstall "CIFS

【STORAGE】Qlogic FC存儲交換機cmd配置方法

dmi bsp pos add rac .net edi csdn clu *************************************************************** ****原文: blog.csdn.net/clark_xu

Spring之AOP在XML中的配置方法

字段 object 代理 [] ger 編程 調用 加載器 bsp AOP 即 Aspect Oriental Program 面向切面編程 先來一個栗子: <aop:config> <aop:pointcut id="

PPP的兩種配置方法(pap和chap)

pap chapPAP的配置R1上的配置[R1]int s4/0/0[R1-Serial4/0/0]ppp authentication-mode pap[R1-Serial4/0/0]q[R1]aaa[R1-aaa]local-user huawei password cipher 123456Info: