從iOS7開始,蘋果對navigationBar進(jìn)行了模糊處理,并把self.navigationController.navigationBar.translucent = YES 作為默認(rèn)處理。對此蘋果注釋的解釋為?// Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent
這時(shí)候就會出現(xiàn)一個(gè)問題,當(dāng)你push的控制器以ScrollView或TableView為主View時(shí),模糊處理會使?fàn)顟B(tài)欄和NavigationBar擋住后面的視圖,所以蘋果會自動把主View的內(nèi)容向下移動64px,同理,底部Tabbar會使主View向上偏移49px,Toolbar會是主View向上偏移44px
當(dāng)你不想讓主View自動發(fā)生偏移時(shí):
self.automaticallyAdjustsScrollViewInsets = NO;//? ? 自動滾動調(diào)整,默認(rèn)為YES
當(dāng)你不想要navigationBar進(jìn)行模糊處理時(shí):
self.navigationController.navigationBar.translucent = NO;//? ? Bar的模糊效果,默認(rèn)為YES
我在代碼中主要 這樣用? 實(shí)現(xiàn)導(dǎo)航欄的透明和模糊
- (void)viewDidLoad {
self.navigationController.navigationBar.translucent=NO;
}
1//把導(dǎo)航欄的屬性改回去 YES是透明效果并且主view不會偏移 NO是導(dǎo)航欄不透明 主view會向下偏移64px
2-(void)viewWillDisappear:(BOOL)animated{3self.navigationController.navigationBar.translucent =YES;4}