//状态栏的高度是20,navigationBar的高度是44
//这段代码是在- (void)viewDidAppear:(BOOL)animated这个方法中设置的
//更改导航栏的frame
self.navigationController.navigationBar.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 64); //调整导航栏的标题的位置 [self.navigationController.navigationBar setTitleVerticalPositionAdjustment:-10 forBarMetrics:UIBarMetricsDefault]; //调整导航栏的图片的位置 [self.navigationItem.leftBarButtonItem setBackgroundVerticalPositionAdjustment:-10 forBarMetrics:UIBarMetricsDefault];
[self.navigationItem.rightBarButtonItem setBackgroundVerticalPositionAdjustment:-10 forBarMetrics:UIBarMetricsDefault];
//- (void)viewWillDisappear:(BOOL)animated在这个方法中要把之前的位置调整重新调回来
//把调整的位置重新改回来 标题不用在重新调整
[self.navigationController.navigationBar setTitleVerticalPositionAdjustment:0 forBarMetrics:UIBarMetricsDefault];
[self.navigationItem.leftBarButtonItem setBackgroundVerticalPositionAdjustment:0 forBarMetrics:UIBarMetricsDefault];
[self.navigationItem.rightBarButtonItem setBackgroundVerticalPositionAdjustment:0 forBarMetrics:UIBarMetricsDefault];
//这个设置navigationBar的frame 在程序从后台进入前台的通知方法,需要重新设置navigationBar的frame
//用通知就可以实现
- (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.// NSLog(@"applicationDidBecomeActive"); //重后台进入前台的时候,通知 扫面界面 重新计算 一下 navigationbar的frame [[NSNotificationCenter defaultCenter]postNotificationName:@"applicationWillEnterForeground" object:nil];
}
//然后,程序从后台进入前台的时候,接收到通知, 来重新设置navigationBar的frame
//当然,从这个界面跳转到其他的界面,在从其他界面返回到这个界面的时候,需要在其他界面的返回之前,做下面一步操作,来解决返回到这个界面的时候,图标跳闪的问题
//调整导航栏的图片的位置 [self.navigationItem.leftBarButtonItem setBackgroundVerticalPositionAdjustment:10 forBarMetrics:UIBarMetricsDefault];
[self.navigationItem.rightBarButtonItem setBackgroundVerticalPositionAdjustment:10 forBarMetrics:UIBarMetricsDefault];
在隐藏掉状态栏后,重新设置navigationbar的frame
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...