去掉navigationBar下的横线,以及产生的影响

需要两行代码:

//消除阴影,必须setBackgroundImage:forBarMetrics:才能让shadowImage生效
//同时会导致self.view的y变成64
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:HexColor(0x18A4B3, 1) size:CGSizeMake(1, 1)] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
原来那个横线不是普通的UIView,是个阴影效果,这真是史上最不像阴影的阴影...

UIBarMetricsDefault时,只要图片高度不为44就会扩展到状态栏,比如我生成的只有1像素的图片就是这样
需要注意的是UIBarMetricsDefault会导致self.view变成64,所以不要惊慌为什么布局突然莫名其妙有点乱

然后UIBarMetricsCompact UIBarMetricsDefaultPrompt UIBarMetricsCompactPrompt这三个我都试了下结果都是没有64的影响,但都是半透明白色,并且扩展到了状态栏,后来弄明白了, Compact是为横屏状态设置, Prompt是title上边有行字,当然这行字得自己设置:

self.navigationItem.prompt = @"我是prompt";
结果就被变成这样: 

去掉navigationBar下的横线,以及产生的影响_第1张图片

嗯,这么奇怪的东西,真是不知道谁会用到这个...

有人明白的话麻烦在评论里告诉我一下

你可能感兴趣的:(iOS)