Swift Navigationbar和查看背景颜色

时间:2016-05-04 20:26:46

标签: ios swift uiview uinavigationbar

我正在尝试创建一个应用程序,其中UINavigationBar和UIView的背景颜色相同。

这就是我所做的:

  • 创建customUINavigationBar(继承自UINavigationBar)
  • 创建customUIView(继承自UIView)

然后我将以下代码添加到customUINavigationBar

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    self.backgroundColor = Colors.turquoise
    let attributes = [NSFontAttributeName: UIFont(name: "AppleGothic", size: 20)!, NSForegroundColorAttributeName: UIColor.whiteColor()]
    self.titleTextAttributes = attributes

    for parent in self.subviews {
        for child in parent.subviews {
            if child is UIImageView {
                child.removeFromSuperview()
            }
        }
    }
}

我也尝试将self.barTintColor = Colors.turquoiseself.tintColor = Colors.turquoise添加到init函数中,但这不会改变结果。

在我的customUIView课程中,我有以下代码:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    self.backgroundColor = Colors.turquoise
}

Colors.turquoise来自包含以下代码行的自定义类:

static var turquoise = UIColor(red: 132/255, green: 217/255, blue: 217/255, alpha: 1.0)

屏幕截图显示了上述代码的结果。如您所见,导航栏和视图之间的颜色差异很小。如何在导航栏和视图中没有任何差异的情况下获得相同的颜色?

提前致谢!

Result of above code

1 个答案:

答案 0 :(得分:1)

使用浮动值为您的颜色" 132.f / 255.f绿色:217.f / 255.f蓝色:217.f / 255.f"

我在objective-c中创建了UINavigationBar的相同子类:

- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        self.translucent = NO;
        self.opaque = YES;
        self.barTintColor = [UIColor colorWithRed:132.f/255.f green:217.f/255.f blue:217.f/255.f alpha:1.0];
    }
    return  self;
}

它按预期工作:

enter image description here