今天記錄兩點,如圖檔中的兩條紅線:
1..在特定的頁面需要将狀态欄變為白色.
2..為了頁面美觀度,特定的頁面 需要将NavigationVC設定為透明,但是設定将一個透明圖設定為Nav的背景圖以後會有一條陰影的線!如下面這個圖
狀态欄樣式設定:
1.設定應用啟動不顯示狀态欄,這一欄相當于是Info的可視化設定,勾選這一欄info.plist會自動添加Status bar is initially hidden應用啟動顯示啟動頁時隐藏狀态欄
2..将 狀态欄設定為白.狀态的顔色隻有兩種顔色Default(黑色),或者light(白色)
首先在Info.pilst 設定基于視圖控制器的狀态欄外觀 添加View controller-based status bar appearance為NO我們就能控制狀态的外觀權限.
然後在代碼中添加以下代碼,就可以将狀态欄設定為白色,不過通過[UIApplication sharedApplication]設定的是應用全局性的,是以要在目前Vc以外将狀态欄的樣式還原為Default
<span style="font-size:18px;"> [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;</span>
在viewWilldisappser中設定:
<span style="font-size:18px;"> [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;</span>
這樣,設定在你想要的Vc中狀态欄就是白色的,其他Vc就是預設的黑色
導航欄(NavigationVc)透明透明化設定(這個效果也是自iOS7開始才可以設定的):
設定導航欄的透明,首先想到一點就是将導航欄的北京圖檔設定為透明圖檔,這樣想法是正确的但是設定完以後,發現怎麼調都會有一條陰影先存在.像上面第二張圖一樣那怎麼做到想第一張圖一樣的效果,代碼不多:
self.navigationController.navigationBar.translucent = YES;//首先要将目前的navigationBar的半透明設定為Yes;為NO的導航欄不透明
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; //在iOS6及之前,translucent的預設值為NO。<span style="font-family:'Heiti SC Light';color:#000000;">
之後,如果barStyle設為</span>UIBarStyleBlackTranslucent<span style="font-family:'Heiti SC Light';">則其值為</span>YES<span style="font-family:'Heiti SC Light';">。</span>是以這兩句保留其中一句就可以了!
//這裡設定navigationBar的背景圖檔為一張 1像素 的透明背景圖檔
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigation_bar"] forBarMetrics:UIBarMetricsDefault];
//這裡是主要點shadowImage,陰影圖檔! 我們看到的那條不管怎設定都還在的線就是這個陰影圖像,如不自定義,預設為顯示
if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)])
{
//_shadowImage是一個目前Vc的全局Image成員變量,用來存儲變之前的shadowImage,因為要在出目前Vc後其他還原預設的陰影圖檔
_shadowImage = self.navigationController.navigationBar.shadowImage;
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc]init]];
}
同樣在viewWilldidappser中設定會原預設狀态:
[self.navigationController.navigationBar setShadowImage:_shadowImage];