【问题标题】: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;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多