ios - uinavigationbar细线颜色怎么修改

标签 ios objective-c uinavigationbar

我从这个问题中知道了获取细线 View 的方法,它是一个 UIImageView:How to hide iOS7 UINavigationBar 1px bottom line

但是,修改这个 View 的背景颜色是很糟糕的体验, 代码如下:

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

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

这有效,但并不总是有效,即使放入 viewdidloadviewwillapearviewDidLayoutSubviews,它也会在某些场景恢复到原始颜色,就像在推送和弹出之后。

所以,请问有没有什么完美的方法可以改变uinavigationbar细线的颜色,谢谢。

最佳答案

现在我发现在 hairline 的 superview 中添加了一个 subview 可以解决问题并且工作正常

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

关于ios - uinavigationbar细线颜色怎么修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32041776/

相关文章:

objective-c - 在 Safari 中连接 Wifi 后返回应用程序

ios - 如何在NavigationBar标题下插入UISearchBar

ios - 更改色调颜色以通过 iOS 中的 Notes 应用程序共享

ios - 如何在 CardIO 中禁用相机扫描和仅启用手动输入卡

ios - MainViewController 没有收到来自 NSNotificationCenter 的通知

iphone - 是否可以将 NSString 转换为纯 Objective C 代码

ios - 用户离开应用后的 NSTimer

ios - UIViewPropertyAnimator 在呈现另一个 Controller 后停止工作

ios - 导航栏项目不可见

ios - 使用 Swift 在 Xcode 中避免从一个 View Controller 到另一个 View Controller 的延迟