交友:微信號 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 }