我不知道为什么会这样,即使我最近没有更改代码,它也只是开始发生。我使用的是正常的UINavigationBar,其中barTint设置为白色,而tintColor设置为标准蓝色。

ios - 为什么在UINavigationBar背景中添加了颜色?-LMLPHP

我以模态形式展示了这个导航控制器。由于某些原因,在检查视图层次结构时,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/

10-12 14:29