我想设置某个页面的导航条为透明,并且没有NavigationBar
的底部阴影线条,StatusBar
颜色与下方颜色一致,不显突兀,尝试了以下方法:
[self.navigationController.navigationBar setTranslucent:YES];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"透明背景图"] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
以上方法在iPhone6SP和iPhone6P等大屏手机上完美运行,达到了预期效果
但是在4.7及以下尺寸屏幕的手机上运行问题就来了,StatusBar变成了黑色(系统版本全部都是9.2.1包括上面运行正常的设备):
没有办法,我又尝试将NavigationBar
的forBarMetrics
属性由UIBarMetricsDefault
改成了UIBarMetricsCompact
(同样尝试过修改成UIBarMetricsDefaultPrompt
,效果都一样),结果在所有设备上都表现了一致的效果,StatusBar
不再是黑色了,但是底部的阴影又出来捣乱了
以上问题同样在iOS8.2,iOS8.3系统测试过,结果都是一毛一样
难道我掉进坑了?
好吧,找到答案了。。。可能是我切图的原因,NavigationBar的透明背景图可能在小屏幕手机上不能覆盖StatusBar造成的!这么写就OK了