2016-07-01 3 views
1

Есть ли возможность иметь UIToolBar с UIBarButtonItem's различных цветами,UIToolbar с UIBarButtonItem-х разных цветами

Например, первая кнопка должна иметь цвет в red шрифте, где, как и остальные кнопки должны иметь lightGray цвета шрифта ,

Примечания: Вот некоторые соображения :)

  1. Я не могу использовать UITabBar, хотя это может быть достигнуто путем взаимозачета названия, используя setTitlePositionAdjustment

  2. Я знаю, что название цвет может быть изменен с помощью [barButton setTitleTextAttributes:@{NSFontAttributeName:toolBarFont,NSForegroundColorAttributeName:themeColor} forState:UIControlStateNormal];, Я не могу изменить цвет заголовка одного элемента.

  3. Нельзя использовать UIBarButtonItem с customView, так как ширина элементов не регулируется автоматически.
+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] 
Смежные вопросы