自定义UINavigationBar,出现坐标下移,UINavitionBar半透明效果

来源:互联网 发布:excel 2010 vba编程 编辑:程序博客网 时间:2024/06/15 07:44

大家肯定在 自定义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.navigationBarsetBackgroundImage:[UIImageimageNamed:@"xx.png"]forBarMetrics:UIBarMetricsDefault];

2.2 设置 barTintColor .

    self.navigationController.navigationBar.tintColor = [UIColor 你需要的颜色];

    self.navigationController.navigationBar.alpha =0.9;

为什么需要设置透明度呢,因为你通过这样设置bar的颜色,出现的结果是没有透明度,但是会出现颜色会加深,所以加上这个透明度来弱化颜色加深的弊端。


总结: 我用的是xCode 7 ,跑的是iOS9的系统,我不清楚是不是最新系统的原因,所以方法有点怪异,因为之前的系统,用前面的方法是可以决绝的,不会透明,也不会让控件下移,迫于无奈,用了后面的方法。

0 0
原创粉丝点击