更改 UIButton 标题导航栏的颜色

Posted

技术标签:

【中文标题】更改 UIButton 标题导航栏的颜色【英文标题】:Change color of the UIButton title navigation bar 【发布时间】:2015-05-21 08:26:41 【问题描述】:

当我创建导航栏时,我可以在左侧项目、右侧项目和标题视图中放置三个按钮,但只有左右项目有动画,并且我不能更改标题按钮的颜色。

导航栏中按钮的创建:

    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "VOYAGE", style: UIBarButtonItemStyle.Plain, target: self, action: "goToPage1:")

    var buttonCenter = UIButton()
    buttonCenter.setTitle("PHOTOS", forState: .Normal)
    buttonCenter.setTitleColor(UIColor.whiteColor(), forState: .Normal)
    buttonCenter.addTarget(self, action: "goToPage2:", forControlEvents: .TouchUpInside)
    self.navigationItem.titleView = buttonCenter

    self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "SIGHTINGS", style: UIBarButtonItemStyle.Plain, target: self, action: "goToPage3:")

触摸按钮时颜色的变化:

函数 goToPage1 :

    self.navigationItem.leftBarButtonItem!.tintColor = UIColor(red: 174/255, green: 211/255, blue: 43/255, alpha: 1)
    self.navigationItem.titleView!.tintColor = UIColor.whiteColor()
    self.navigationItem.rightBarButtonItem!.tintColor = UIColor.whiteColor()

函数 goToPage2 :

    self.navigationItem.leftBarButtonItem!.tintColor = UIColor.whiteColor()
    self.navigationItem.titleView!.tintColor = UIColor(red: 174/255, green: 211/255, blue: 43/255, alpha: 1)
    self.navigationItem.rightBarButtonItem!.tintColor = UIColor.whiteColor()

函数 goToPage3 :

    self.navigationItem.leftBarButtonItem!.tintColor = UIColor.whiteColor()
    self.navigationItem.titleView!.tintColor = UIColor.whiteColor()
    self.navigationItem.rightBarButtonItem!.tintColor = UIColor(red: 174/255, green: 211/255, blue: 43/255, alpha: 1)

你对按钮的选择动画有什么想法吗?

感谢您的帮助。

【问题讨论】:

我可能错了,但我认为您需要更改按钮中心的颜色而不是 titleView 了 我试过但没用 你用了吗 buttonCenter.backgroundColor = UIColor.whiteColor() 我已经创建了“var buttonCenter: UIButton?”我启动了 viewDidLoad 中的按钮,但颜色没有改变。 也许您可以尝试设置按钮颜色并将其重新分配给 navigationItem.titleView 每次您希望更改颜色时。例如:buttonCenter.setTitleColor(UIColor.whiteColor(), forState: .Normal) self.navigationItem.titleView = buttonCenter 【参考方案1】:

你可以试试这个步骤:

在 main.storyboard 中,对于每个视图,您可以在模拟指标部分将顶部栏的值更改为半透明导航栏

添加导航项创建您的按钮

将 main.storyboard 中的按钮链接到您的文件并使用 self.yourButton.setTitleColor(UIColor.whiteColor(), forState: .Normal) 更改颜色

【讨论】:

以上是关于更改 UIButton 标题导航栏的颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何更改特定视图上导航栏的颜色

如何更改导航栏的默认背景颜色? [复制]

以编程方式更改标签栏和导航栏的颜色

更改导航栏的按钮颜色

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

在 Bootstrap 上更改导航栏的颜色 [重复]