我不知道为什么会这样,即使我最近没有更改代码,它也只是开始发生。我使用的是正常的UINavigationBar,其中barTint设置为白色,而tintColor设置为标准蓝色。
我以模态形式展示了这个导航控制器。由于某些原因,在检查视图层次结构时,UINavigationBar具有:UINavigationBar-_UINavigationBarBackground--UIImageView
在调试器中检查后,此图像视图的backgroundColor设置为[UIColor colorWithRed:0 green:0 blue:0 alpha: 0.3]
为什么?我不知道出了什么问题。
发生在模拟器中。
有人看过吗?疯!
最佳答案
我仍然没有弄清楚为什么会这样,但是像一个糟糕的医生一样,我找到了一种使症状消失的方法,却不知道问题出在哪里。
我将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;
}
}
}
关于ios - 为什么在UINavigationBar背景中添加了颜色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37278046/