objective-c - iOS NavigationBar透明问题
伊谢尔伦
伊谢尔伦 2017-04-17 17:50:48
[iOS讨论组]

我想设置某个页面的导航条为透明,并且没有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包括上面运行正常的设备):
没有办法,我又尝试将NavigationBarforBarMetrics属性由UIBarMetricsDefault改成了UIBarMetricsCompact(同样尝试过修改成UIBarMetricsDefaultPrompt,效果都一样),结果在所有设备上都表现了一致的效果,StatusBar不再是黑色了,但是底部的阴影又出来捣乱了

以上问题同样在iOS8.2,iOS8.3系统测试过,结果都是一毛一样
难道我掉进坑了?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
黄舟

好吧,找到答案了。。。可能是我切图的原因,NavigationBar的透明背景图可能在小屏幕手机上不能覆盖StatusBar造成的!这么写就OK了

self.navigationController.navigationBar.shadowImage = [[UIImage alloc]init];
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc]init] forBarMetrics: UIBarMetricsDefault];
阿神

你好,我想问一下你的navgationBar怎么做的让他和下面的颜色一致,navgationBar颜色的色差怎么去掉的,还是说直接去掉半透明效果,如果想保留半透明效果,应该怎么办,你有解决的办法吗

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号