如何在Swift中更改UIBarButtonItem的tintColor?

时间:2016-01-05 01:24:39

标签: ios swift uinavigationcontroller uinavigationbar uinavigationitem

我想将右栏按钮项的颜色从黑色更改为白色。它是一个按钮作为搜索图标。我还没有对搜索实现进行编码,因为我想首先完成主界面。我以为我写了正确的代码所以它应该显示为白色,但它在故事板和模拟器中似乎仍然显示为黑色。

在故事板中,我还将其设置为白色。

这是我的代码,位于AppDelegate.swift文件中:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    // Changing the status bar's colour to white
    UIApplication.sharedApplication().statusBarStyle = .LightContent

    // Changing the navigation controller's background colour
    UINavigationBar.appearance().barTintColor = UIColor(red: 0.0/255.0, green: 165.0/255.0, blue: 227.0/255.0, alpha: 1.0)

    // Changing the navigation controller's title colour
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]

    // Changing the colour of the bar button items
    UINavigationBar.appearance().tintColor = UIColor.whiteColor()

    // Changing the tint colour of the tab bar icons
    UITabBar.appearance().tintColor = UIColor(red: 0.0/255/0, green: 165.0/255.0, blue: 227.0/255.0, alpha: 1.0)

    return true
}

这是模拟器的图像:

enter image description here

我觉得奇怪的是这行代码不起作用。任何解决方案?

3 个答案:

答案 0 :(得分:4)

SWIFT 4

在将自定义barbuttonitem声明为出口后:

@IBOutlet weak var yourBarButtonItem: UIBarButtonItem!

您可以根据自己的喜好定义颜色。

 yourBarButtonItem.tintColor = .red

答案 1 :(得分:0)

问题是按钮自动设置为自定义。我将它重新配置为系统。

答案 2 :(得分:0)

设置普通文本的文本颜色:

let uiBarButton = UIBarButtonItem(title: "Logout", style: .plain, target: self, action: #selector(logOutTapped))
uiBarButton.tintColor = UIColor.appColor
navigationItem.rightBarButtonItems = [uiBarButton]

设置属性文本的文本颜色:

let uiBarButton = UIBarButtonItem(title: "Logout", style: .plain, target: self, action: #selector(logOutTapped))
uiBarButton.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor.appColor], for: .normal)
navigationItem.rightBarButtonItems = [uiBarButton]