【问题标题】:Why is there a color added to my UINavigationBar background?为什么我的 UINavigationBar 背景中添加了颜色?
【发布时间】:2016-05-17 13:47:50
【问题描述】:
我不知道为什么会发生这种情况,即使我最近没有更改该代码,它也刚刚开始发生。我使用的是普通 UINavigationBar,barTint 设置为白色,tintColor 设置为标准蓝色。
我以模态方式展示这个导航控制器。出于某种原因,在检查视图层次结构时,UINavigationBar 有:
UINavigationBar
-_UINavigationBarBackground
--UIImageView
在调试器中检查后,此图像视图的背景颜色设置为 [UIColor colorWithRed:0 green:0 blue:0 alpha: 0.3]
为什么?我不知道出了什么问题。
发生在模拟器中。
有人见过吗?疯了!
【问题讨论】:
标签:
ios
uinavigationcontroller
uinavigationbar
【解决方案1】:
我还没弄明白为什么会这样,但我就像一个糟糕的医生一样,在不知道问题出在哪里的情况下找到了一种让症状消失的方法。
我继承了 UINavigationBar 并对 layoutSubviews 做了一些修改:
- (void)layoutSubviews
{
[super layoutSubviews];
UIView *subview = self.subviews[0];
if ([NSStringFromClass(subview.class) hasPrefix:@"_"]) {
subview = subview.subviews[0];
if ([subview isKindOfClass:[UIImageView class]]) {
subview.backgroundColor = nil;
}
}
}