着色 iPhone 导航栏时颜色和按钮会改变行为

Posted

技术标签:

【中文标题】着色 iPhone 导航栏时颜色和按钮会改变行为【英文标题】:Colors and buttons change behavior when tinting iPhone navigationBar 【发布时间】:2009-11-09 09:14:42 【问题描述】:

我想知道为什么当我做这样的事情时一切都停止了:

self.navigationController.navigationBar.tintColor = [UIColor blackColor];

无论样式如何,我在导航栏上的所有按钮现在都是黑色的,如下面的这个,它应该变成一个蓝色按钮:

    UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleDone target:self action:@selector(editTrip)];

它没有,它只是黑色的。

点击时按钮的细微变化/效果也消失了?

有没有办法在不破坏标准行为的情况下更改导航栏甚至 UIbarButtonItems 的颜色?

这真的很奇怪。我刚刚检查了苹果的“远程”应用程序,它有黑色的导航栏和一个蓝色的“完成”按钮,用于离开“帮助”部分。

我真的必须构建所有定制的东西来实现这一点吗?

感谢您提供的任何帮助:)

【问题讨论】:

【参考方案1】:

在 Interface Builder 中,将导航栏的样式更改为黑色不透明或黑色半透明并保留色调。这将为您提供一个带有标准蓝色按钮的黑条。

我确定在没有 Interface Builder 的情况下在代码中执行此操作的方法是将 barStyle 属性设置为 UIBarStyleBlackUIBarStyleBlackTranslucent,但我没有这样做。

【讨论】:

嗨,mahboudz,谢谢,我马上试试。我想知道是否将色调应用于每个子视图,看起来像这样:) 我将在代码中设置这些东西,以便返回结果。 完美的马布兹! self.navigationController.navigationBar.barStyle = UIBarStyleBlack;给我黑色外观和正确颜色的按钮:) 再次感谢!

以上是关于着色 iPhone 导航栏时颜色和按钮会改变行为的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7隐藏导航栏时如何更改状态栏的颜色?

在iOS 7中隐藏导航栏时,如何更改状态栏的颜色?

更改 UIButton 标题导航栏的颜色

UIBarButtonItem插入导航栏时如何改变边框?

WindowsLookAndFeel关于按钮着色的意外行为

如何在 iOS 7.1.1 / iPhone 5s 上更改导航栏按钮颜色