有的时候我们需要在个人中心这样的界面直接设置上面的一个相同颜色块(通常是导航栏的背景颜色),当然这个也可以通过先隐藏导航栏然后再添加想要的背景块视图,但是这样会带来界面切换的视觉差,体验不好,而且有的时候我们还需要标题和导航栏两边的辅助操作按钮,这样来看,最好的方式就是通过去掉导航栏下面的线,然后再在下面添加背景颜色和导航栏背景颜色一样的视图来达到这个效果,下面的方法就是如何去掉和恢复导航栏下面的黑线。
1、一进入视图就去掉黑线
这个我们可以在viewWillAppear方法里面实现,代码如下,
//[QuickCreatTreasureBox imageWithColor:kTopBarBgColor size:CGSizeMake(kMainWidth, 64),这个方法是封装的根据颜色来生成指定图片的方法,上一个文章里面有类似的实现方式。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
[self.navigationController.navigationBar setBackgroundImage:[QuickCreatTreasureBox imageWithColor:kTopBarBgColor size:CGSizeMake(kMainWidth, 64)] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
}
2、离开界面的时候恢复黑线
这个我们可以在viewWillAppear方法里面实现,代码如下,
- (void)viewWillDisappear:(BOOL)animated
{
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:nil];
[super viewWillDisappear:YES];
}