导航栏背景色修改&导航栏下面的横线消除

通常用的是此方法,来修改导航条的颜色

    self.navigationController.navigationBar.barTintColor = [Common hexStringToColor:@"47a8ef"];

那么,问题是,实际上系统导航栏其实是半透明状态的,颜色会有色差!
颜色会变的比平常的淡!!
我们只需要改变导航条的半透明状态 — translucent属性

 self.navigationController.navigationBar.translucent = NO;

这样,导航条的颜色 就会和我们设置的需要颜色一样

so,开始为这个设置 填上那些坑吧!!

以上设置之后,你会发现 你所画的view / scrollview //等 怎么又下移的64? 你会怀疑你之前设置的这行代码,

  self.automaticallyAdjustsScrollViewInsets = NO; //取消导航栏自动适应

是否未被添加,是否开启或关闭
,然而,无论你怎么设置这行代码,都不会产生效果,(还是空出64)

而如果你只是把你导航条下面的view//scrollview 的frame.origin.y 设置为0,(这样可以解决)
但是! 那又让你其他的frame一起要跟着变动!太麻烦了!

这时候,你需要这行代码;
设置一下自己view的初始位置

self.edgesForExtendedLayout = UIRectEdgeNone;

这样填写一下,导航条下面view 下移的问题就可以解决,同时,导航栏背景色的问题也得以解决, 还不需要修改你已经设置好的view的frame,
(ps: 这个时候,关闭不关闭导航栏的自动布局已经无关紧要了,应为只要关闭了导航栏的透明属性,self.automaticallyAdjustsScrollViewInsets = NO; 就会自动失效 )


导航栏下面还有条横线呢??
在导航条颜色 以及下面是scrollview颜色终于一样,位置终于接在一起之后,为啥还有条1xp不到的线栏在中间? 百度之后,也找到了一个合适的方法,方法不用多,够用就好!

主要思路,
在导航条上寻找到这根1xp不到的线, 然后在view的生命周期里,隐藏掉他们!!!

UIImageView *_lineVIew;
- (void)viewDidLoad {
    [super viewDidLoad];
    _lineVIew = [self findlineviw:self.navigationController.navigationBar];
    }
-(UIImageView*)findlineviw:(UIView*)view{
    
    if ([view isKindOfClass:[UIImageView class]]&&view.bounds.size.height<=1.0) {
        return (UIImageView*) view;
    }for (UIImageView *subview in view.subviews) {
        UIImageView *lineview = [self findlineviw:subview];
        if (lineview) {
            return lineview;
        }
    }
    return nil;
    
}
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    _lineVIew.hidden = YES;
}
-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    _lineVIew.hidden = YES;
}
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    _lineVIew.hidden = YES;
}

终于,可以看到完美的样式了
上图:这里写图片描述
过了一段时间之后, 我才知道这个横线是咋来的 ,具体 这里有写 http://blog.csdn.net/iOSTianNan/article/details/51149377

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值