如何修改uinavigationbar的发际线颜色

时间:2015-08-17 01:56:56

标签: ios objective-c uinavigationbar

我已经知道从这个问题获取发际线视图的方法,这是一个UIImageView:How to hide iOS7 UINavigationBar 1px bottom line

但是,要修改此视图的背景颜色是如此糟糕的体验, 像这样的代码:

    [[self findHairlineImageViewUnder:self.navigationController.navigationBar] setBackgroundColor:[UIColor colorWithHexString:@"ff0000"]];

findHairlineImageViewUnder方法来自上面的答案链接

这可行,但并非总是如此,即使放入viewdidloadviewwillapearviewDidLayoutSubviews,它也会在某个场景恢复原始颜色,例如在推送和弹出后。

所以,我想问一下是否有一些完美的方法来改变uinavigationbar发际线的颜色,谢谢。

1 个答案:

答案 0 :(得分:1)

现在我发现在发际线的超级视图中添加了一个子视图,并且工作得很好

    UIView* sv= [[UIView alloc] initWithFrame:[self findHairlineImageViewUnder:self.navigationController.navigationBar].frame];
sv.backgroundColor=[UIColor colorWithHexString:@"ff0000"];
[[self findHairlineImageViewUnder:self.navigationController.navigationBar].superview addSubview:sv];