繁体   English   中英

UIToolBar与UIBarButtonItem的颜色不同

[英]UIToolBar with UIBarButtonItem's of different colors

是否有可能让UIToolBar具有不同颜色的UIBarButtonItem's

例如,第一个按钮应该具有red字体颜色,其余按钮应该具有lightGray字体颜色。

注意:以下是一些注意事项:)

  1. 我不能使用UITabBar ,虽然它可以通过使用setTitlePositionAdjustment抵消标题来实现

  2. 我知道可以使用[barButton setTitleTextAttributes:@{NSFontAttributeName:toolBarFont,NSForegroundColorAttributeName:themeColor} forState:UIControlStateNormal];来更改标题颜色[barButton setTitleTextAttributes:@{NSFontAttributeName:toolBarFont,NSForegroundColorAttributeName:themeColor} forState:UIControlStateNormal]; ,我不能改变一个项目的标题颜色。

  3. 无法将UIBarButtonItemcustomView UIBarButtonItem使用,因为项目的宽度不会自动调整。

您可以将图像添加为Like Below,并向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]

斯威夫特4:

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: #selector(self.playAudio))
        playButton.tintColor = UIColor.red

        let settingButton : UIBarButtonItem  = UIBarButtonItem(image: settingimg,
                                                               style: UIBarButtonItemStyle.plain ,
                                                               target: self, action: #selector(self.btnSettingAction))
        settingButton.tintColor = UIColor.blue
        self.navigationItem.rightBarButtonItems = [settingButton,playButton]

每个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
*/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM