我已经知道从这个问题获取发际线视图的方法,这是一个UIImageView:How to hide iOS7 UINavigationBar 1px bottom line
但是,要修改此视图的背景颜色是如此糟糕的体验, 像这样的代码:
[[self findHairlineImageViewUnder:self.navigationController.navigationBar] setBackgroundColor:[UIColor colorWithHexString:@"ff0000"]];
findHairlineImageViewUnder方法来自上面的答案链接
这可行,但并非总是如此,即使放入viewdidload
,viewwillapear
,viewDidLayoutSubviews
,它也会在某个场景恢复原始颜色,例如在推送和弹出后。
所以,我想问一下是否有一些完美的方法来改变uinavigationbar发际线的颜色,谢谢。
答案 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];