2016-07-01 81 views
1

的UIBarButtonItem的是否有具有UIToolBar用不同顏色的UIBarButtonItem's的可能性,UIToolBar用不同顏色的

例如,第一個按鈕應該有一個red字體顏色,其中,按鈕的其餘部分應具有lightGray字體顏色。

注:這裏有一些注意事項:)

  1. 我不能使用UITabBar,雖然它可以通過補償使用setTitlePositionAdjustment

  2. 我知道標題顏色可以使用[barButton setTitleTextAttributes:@{NSFontAttributeName:toolBarFont,NSForegroundColorAttributeName:themeColor} forState:UIControlStateNormal];修改標題來實現,我無法更改一個項目的標題顏色。

  3. 不能使用UIBarButtonItemcustomView,因爲物品的寬度不會自動調整。
+0

每個UIBarButtonItem都有tintColor屬性,您可以分別爲每個UIBarButtonItem對象設置.... – user3441734

回答

1

各的UIBarButtonItem具有tintColor屬性,你可以將它設置爲每個單獨的UIBarButtonItem對象....

import UIKit 

let b1 = UIBarButtonItem(title: "Red", style: .Plain, target: nil, action: nil) 
b1.tintColor = UIColor.redColor() 

let b2 = UIBarButtonItem(title: "Green", style: .Plain, target: nil, action: nil) 
b2.tintColor = UIColor.greenColor() 

let item = UINavigationItem(title: "nav") 
item.leftBarButtonItem = b1 
item.rightBarButtonItem = b2 

dump(item.titleView?.tintColor) 
dump(item.leftBarButtonItem?.tintColor) 
dump(item.rightBarButtonItem?.tintColor) 

/* 
- nil 
▿ UIDeviceRGBColorSpace 1 0 0 1 
▿ Some: UIDeviceRGBColorSpace 1 0 0 1 #0 
▿ UIDeviceRGBColor: UIDeviceRGBColorSpace 1 0 0 1 
▿ UIColor: UIDeviceRGBColorSpace 1 0 0 1 
- NSObject: UIDeviceRGBColorSpace 1 0 0 1 
▿ UIDeviceRGBColorSpace 0 1 0 1 
▿ Some: UIDeviceRGBColorSpace 0 1 0 1 #0 
▿ UIDeviceRGBColor: UIDeviceRGBColorSpace 0 1 0 1 
▿ UIColor: UIDeviceRGBColorSpace 0 1 0 1 
- NSObject: UIDeviceRGBColorSpace 0 1 0 1 
*/ 
2

您可以將圖像添加爲像下面並添加多個按鈕UItoolbar

let playimg : UIImage = UIImage(named: "ic_playButton")! 
let settingimg : UIImage = UIImage(named: "ic_settingButton")! 

let playButton : UIBarButtonItem = UIBarButtonItem(image: playimg, 
      style: UIBarButtonItemStyle.Plain , 
      target: self, action: "playAudio") 
playButton.barTintColor = UIColor.redColor() 

let settingButton : UIBarButtonItem = UIBarButtonItem(image: settingimg, 
      style: UIBarButtonItemStyle.Plain , 
      target: self, action: "btnSettingAction") 
settingButton.barTintColor = UIColor.blueColor()  
self.navigationItem.rightBarButtonItems = [settingButton,playButton]