获取导航栏标题的文本颜色

时间:2015-06-24 17:55:58

标签: ios objective-c uinavigationcontroller uinavigationbar

我需要获取导航栏标题的文字颜色。

我知道如何设置它:

self.navigationController.navigationBar.titleTextAttributes = ...

然而,我似乎无法找到任何实际上获得颜色而不是设置颜色的东西。我尝试过使用:

NSLog(@"%@", self.navigationController.navigationBar.titleTextAttributes);

打印出包含titleTextAttributes的字典。其中的一个条目具有键NSColor,但是,它的值似乎与文本的颜色实际上不匹配。此输出类似于:

{
    NSColor = "UIDeviceWhiteColorSpace 1 1";
    NSFont = "<UICTFont: 0x7fa23be1df60> font-family: \"HelveticaNeue\"; font-weight: normal; font-style: normal; font-size: 24.00pt";
}

任何人都知道如何检索此信息?

1 个答案:

答案 0 :(得分:0)

我上面写的用于检索我认为不起作用的颜色的方法 实际上是正确的。那就是:

 NSDictionary *titleTextAttributes = self.navigationController.navigationBar.titleTextAttributes;

这将检索其中包含titles文本属性的字典。 此词典中的一个条目具有键NSColor,其值是文本的实际颜色。这可以使用以下方式专门检索:

UIColor *textColor = [self.navigationController.navigationBar.titleTextAttributes objectForKey:@"NSColor"];

注意: 黑色和白色分别列为UIDeviceWhiteColorSpace 0 1UIDeviceWhiteColorSpace 1 1。不要混淆,因为我的名字都有“白色”。

感谢rmaddy指出这一点。