大家肯定在 自定义UInavigationBar是继承与UINavigationController,也许有的页面会出现这种半透明的效果,也许没有,尝试了太多方法,今天终于解决了,所以再次,写一点点心得。 首先我遇到这种问题,我肯定立马百度了。 然后确实也是发现了,很多答案,都是iOS7及以上系统的解决方案,当然咯,现在ios9都出来了,自然最低系统都是Ios7以上啦。所以直接吧方法拧过来,就开始各种跑,实验。 我就不吧错误的实验方法写出来了,过程很心塞。
1.首先我先把方法都拧过来,保证大家都很熟悉。
self.navigationController.navigationBar.translucent = NO;
self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = YES; (是否根据按所在界面的navigationbar与tabbar的高度,自动调整scrollview的 inset,设置为no,让它不要自动调整就可以了)
self.extendedLayoutIncludesOpaqueBars = YES;
统统都设置好了,我发现结果: 然并卵
2. 我后面发现决绝方法有两种
2.1 直接设置背景图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"xx.png"] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.tintColor = [UIColor 你需要的颜色];
self.navigationController.navigationBar.alpha = 0.9;
为什么需要设置透明度呢,因为你通过这样设置bar的颜色,出现的结果是没有透明度,但是会出现颜色会加深,所以加上这个透明度来弱化颜色加深的弊端。
总结: 我用的是xCode 7 ,跑的是iOS9的系统,我不清楚是不是最新系统的原因,所以方法有点怪异,因为之前的系统,用前面的方法是可以决绝的,不会透明,也不会让控件下移,迫于无奈,用了后面的方法。