self.navigationController.navigationBar.translucent = YES航欄的屬性默認 YES是透明效果並且主view不會偏移 NO是導航欄不透明 主view會向下偏移64px


交友:微信號 dwjluck2013

從iOS7開始,蘋果對navigationBar進行了模糊處理,並把self.navigationController.navigationBar.translucent = YES 作為默認處理。對此蘋果注釋的解釋為 // Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent 
這時候就會出現一個問題,當你push的控制器以ScrollView或TableView為主View時,模糊處理會使狀態欄和NavigationBar擋住后面的視圖,所以蘋果會自動把主View的內容向下移動64px,同理,底部Tabbar會使主View向上偏移49px,Toolbar會是主View向上偏移44px 
當你不想讓主View自動發生偏移時:

 self.automaticallyAdjustsScrollViewInsets = NO;//    自動滾動調整,默認為YES

當你不想要navigationBar進行模糊處理時:

self.navigationController.navigationBar.translucent = NO;//    Bar的模糊效果,默認為YES

我在代碼中主要 這樣用 實現導航欄的透明和模糊
- (void)viewDidLoad {
self.navigationController.navigationBar.translucent = NO;
}
1 //把導航欄的屬性改回去 YES是透明效果並且主view不會偏移 NO是導航欄不透明 主view會向下偏移64px
2 -(void)viewWillDisappear:(BOOL)animated{
3     self.navigationController.navigationBar.translucent = YES;
4 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM