我不知道为什么会发生这种情况并且它刚刚开始发生,即使我最近没有更改过该代码。我正在使用普通的UINavigationBar,barTint设置为白色,tintColor设置为标准蓝色。
我以模态方式呈现此导航控制器。出于某种原因,在检查视图层次结构时,UINavigationBar具有:
UINavigationBar
-_UINavigationBarBackground
--UIImageView
在调试器中检查时,此图像视图的backgroundColor设置为[UIColor colorWithRed:0 green:0 blue:0 alpha: 0.3]
为什么呢?我不知道出了什么问题。
在模拟器中发生。
有没有人见过这个?疯!
答案 0 :(得分:0)
我仍然无法弄清楚为什么会这样,但是就像一个坏医生一样,我找到了一种让症状消失而不知道问题是什么的方法。
我将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;
}
}
}