更改狀態列,導航欄顏色的方法
ios上狀態列 就是指的最上面的20畫素高的部分
狀態列分前後兩部分,要分清這兩個概念,後面會用到:
前景部分:就是指的顯示電池、時間等部分;
背景部分:就是顯示黑色或者圖片的背景部分;
(一)設定statusBar的【前景部分】
簡單來說,就是設定顯示電池電量、時間、網路部分標示的顏色, 這裡只能設定兩種顏色:
預設的黑色(UIStatusBarStyleDefault)
白色(UIStatusBarStyleLightContent)
可以設定的地方有兩個:plist設定裡面 和 程式程式碼裡
初始化設定:導航欄設定為不透明並給了"標題"與狀態列文字作對比
self.edgesForExtendedLayout = 0;
self.navigationItem.title = @"標題";
改變狀態列的方法
方法一:
1、plist
View controller-based status bar appearance 設定為 NO
2、程式碼設定
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
效果如下:
方法二:
1、plist
View controller-based status bar appearance 設定為 YES 或者預設(不設定)
注意:
如果View controller-based status bar appearance為YES。
則[UIApplication sharedApplication].statusBarStyle 無效。
2、程式碼設定
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
或者在控制器中重寫 preferredStatusBarStyle方法,修改狀態列顏色
- (UIStatusBarStyle)preferredStatusBarStyle {
// return UIStatusBarStyleLightContent;
return UIStatusBarStyleDefault;
}
(二)設定statusBar的【背景部分】
背景部分,簡單來說,就是背景色;改變方法有兩種:
1、系統提供的方法
navigationBar的setBarTintColor介面,用此介面可改變statusBar的背景色
self.navigationController.navigationBar.barTintColor = [UIColor greenColor];
如果想將狀態列和導航欄字型全變為白色,這樣就行
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
如果只想改變導航欄的字型顏色,可以這樣
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]}];
或者可以設定背景圖片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"image01"] forBarMetrics:UIBarMetricsDefault];
2、另闢蹊徑
建立一個UIView,
設定該UIView的frame.size 和statusBar大小一樣,
設定該UIView的frame.origin 為{0,-20},
設定該UIView的背景色為你希望的statusBar的顏色,
在navigationBar上addSubView該UIView即可。
原理:
狀態列區域相對於navigationBar的區域為
{0,-20,self.view.bounds.size.width,20}
除了改變狀態列的前景色(文字顏色,wifi顏色,時間顏色,電池顏色),就是改變背景色.由於狀態列區域上的控制元件是隱藏的,所以只要在狀態列區域被渲染了顏色,狀態列的背景顏色就跟著一起改變,從而改變了狀態列的背景顏色.
UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, self.view.bounds.size.width, 20)];
statusBarView.backgroundColor = [UIColor greenColor];
[self.navigationController.navigationBar addSubview:statusBarView];
另外圖片透明處理
navigationBar為透明,註釋掉self.edgesForExtendedLayout = 0;
// self.edgesForExtendedLayout = 0;
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]
self.navigationController.navigationBar.shadowImage = [UIImage new];
相關推薦
更改狀態列,導航欄顏色的方法
ios上狀態列 就是指的最上面的20畫素高的部分 狀態列分前後兩部分,要分清這兩個概念,後面會用到: 前景部分:就是指的顯示電池、時間等部分; 背景部分:就是顯示黑色或者圖片的背景部分; (一)設定s
iOS 更改狀態列、導航欄顏色的幾種方法
ios上狀態列 就是指的最上面的20畫素高的部分 狀態列分前後兩部分,要分清這兩個概念,後面會用到: 前景部分:就是指的顯示電池、時間等部分; 背景部分:就是顯示黑色或者圖片的背景部分; (一)設定statusBar的【前景部分】 簡單來說,就是設定顯示電池電量、時間、網路部分標示的顏色, 這裡只能設定兩種
Android 通過 style 設定狀態列,導航欄等的顏色
我們在有些時候會有這個樣的需求,需要修改狀態列,導航欄。系統控制元件的顏色。我們可以先定義一個style,然後在這個style中設定我們需要顏色的屬性,最後在清單檔案中來給某個Activity設定主題即可。程式碼如下: <style name="
修改狀態列與導航欄顏色
1.修改狀態列 可進行自定義 public class StatusBarView extends View { private Context context; public StatusBarView(Context context) { this(con
安卓4.3,原始碼內隱藏狀態列,導航欄
博主使用的是天嵌的IMX6Q 安卓版本4.3 修改方法: 導航欄: 修改 build/tools/buildinfo.sh 58行 echo "qemu.hw.mainkey
設定狀態列、導航欄背景顏色,修改導航欄返回按鈕顏色
1、設定狀態列為透明黑色: 在AppDelegate.h的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOption
獲取導航欄,狀態列,標籤欄的高度
獲取導航欄的高度: self.navigationController.navigationBar.frame.size.height 寬度: self.navigationController.navigationBar.frame.size.width
沉浸式狀態列實現,讓狀態列和導航欄變色吧
該功能只能適應Android4.4及以上版本,4.4版本真機,5.0版本真機,6.0版本模擬器測試通過 該方法來自https://github.com/jgilfelt/SystemBarTint開源庫 效果圖: 實現步驟: (一)Android Studio專案新增依賴
(七十)Xcode5及以上對於狀態列和導航欄樣式的設定方法
【狀態列】 在Xcode5以前,狀態列是通過UIApplication單例來管理的,而在此後,預設情況下狀態列通過控制器來管理,而且如果控制器有NavigationController,那麼設定狀態列的操作在NavigationController中進行,呼叫的方法為: -
Android狀態列和導航欄
1.隱藏狀態列或導航欄 View decordView = getWindow().getDecorView(); /*SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN 分別代表隱藏導航欄和狀態列
android4.4以上沉浸式狀態列和導航欄實現以及Bar的其他管理
自從android4.4開始,android手機狀態列再也不是一成黑的時代,之前叫做變色龍,miui6釋出會把他叫做沉浸式,之後大家就自然而然的接受了沉浸式這個名稱,其實實際應該叫做Translucent Bar,即為透明狀態列。 沉浸式實現原理其實是使整個activity佈局延伸到整個螢幕,然
獲取狀態列和導航欄高度
獲取狀態列高度 public static int getStatusHeight(Context context) { int status_bar_height = 0; int h = context.getResources().getDimensionPixel
android介面UI美化:沉浸模式、全透明或半透明狀態列及導航欄的實現
android api19開始我們就能對頂部狀態列和底部導航欄進行半透明處理了,而api21開始則可以實現全透明狀態列與導航欄以及開啟沉浸模式,至於什麼是沉浸模式,大家百度一下應該就都知道了,有一點需要強調的是全透明不是沉浸模式,前者只是將狀態列、導航欄的背景設定為完全透明,而後者則是完全將狀態列與
【實戰乾貨】透明狀態列和導航欄的終極解決方案
本文主要分享了透明狀態列和導航欄的終極解決方案。以後這類問題,一文搞定 這個技術痛點遇到過的都懂~本文幫你徹底解決這個痛點~還不快收藏 背景 在我做 Android 開發之前,我就發現有些 App 的狀態列和導航欄有透明效果,或者是沉浸式效果,比如說酷
狀態列和導航欄的設定
其中有些值是要相互配合使用,單一使用沒有效果,需要的時候查詢文件,都有解釋, 或是多嘗試幾次,也就知道該用哪個了。 // 沉浸式狀態列 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Android開發之應用狀態列、導航欄都透明
直接上程式碼 //狀態列、導航欄都透明 private void hideStatusBarNavigationBar() { if (Build.VERSION.SDK_INT = Build.VERSION_CODES.LOLLIPOP)
Android沉浸式狀態列及導航欄實現
Android在4.4版本以後開始出現狀態列及導航欄透明化 實現程式碼如下 If (Build.Version.Sdk_Int >= Build.Version_Codes.Kitkat)
Android 沉浸式模式與常見狀態列和導航欄效果
官方稱沉浸式狀態列為沉浸式模式。什麼是沉浸式?沉浸式就是讓人專注當前的(由設計者營造)情境下感到愉悅和滿足,而忘記真實的情境。什麼是Android中的沉浸式?當啟用該模式,應用程式的介面將佔據整個螢幕,自動隱藏系統的狀態列和導航欄,讓應用程式內容可以在最大顯示範圍呈現,增加大屏體驗,而當需要檢視通知的時候只需
Android隱藏狀態列和導航欄
public class BaseActivity extends AppCompatActivity { @Override public void onWindowFocusChanged(boolean hasFocus) { super
iOS開發——iOS狀態列和導航欄的控制問題
導航欄控制 背景控制 在IOS7中使用barTintColor來控制導航欄的背景色: [[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]]; 這個設定方法可以在AppDelegate中設定,全域性可以生效。