将 UIBarButton 的 tintcolor 更改为 UIButton 作为其自定义视图
Change tintcolor of UIBarButton with UIButton as its customview
我正在创建一个 UIBarbutton 项目,如下所示
func createNavigationButton(_ btnImage: UIImage, btnAction: Selector) -> UIBarButtonItem {
let btn = UIButton()
btn.setImage(btnImage, for: UIControl.State())
btn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btn.addTarget(self, action: btnAction, for: .touchUpInside)
let item = UIBarButtonItem()
item.customView = btn
item.tintColor = .red
return item
}
Tint 颜色不变。
如果我简单地创建像
let item = UIBarButtonItem.init(image: btnImage,
style: .plain,
target: self,
action: btnAction)
item.tintColor = .red
色调颜色正在改变。但是,由于某些原因,我需要一个 UIbutton 作为我的 barbuttons 的自定义视图。
如何更改以 UIbutton 为自定义视图的 UIBarbuttonItem 的颜色?
您必须使用 system
类型实例化按钮才能设置色调。然后将色调颜色设置为 btn 本身。
let btn = UIButton(type: .system)
btn.tintColor = .red
或者,您可以在 UIImage
.
上强制使用渲染模式
btn.setImage(btnImage.withRenderingMode(.alwaysTemplate), for: UIControl.State())
btn.tintColor = .red
- 使用图像作为模板图像:
UIImage(named: "nameOfTheImage")!.withRenderingMode(.alwaysTemplate)
如果图像在按钮上,您必须设置按钮色调颜色。
func createNavigationButton(_ btnImage: UIImage, btnAction: Selector) -> UIBarButtonItem {
let btn = UIButton()
btn.setImage(btnImage, for: UIControl.State())
btn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btn.addTarget(self, action: btnAction, for: .touchUpInside)
btn.tintColor = .red
let item = UIBarButtonItem()
item.customView = btn
item.tintColor = .red
return item
}
我正在创建一个 UIBarbutton 项目,如下所示
func createNavigationButton(_ btnImage: UIImage, btnAction: Selector) -> UIBarButtonItem {
let btn = UIButton()
btn.setImage(btnImage, for: UIControl.State())
btn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btn.addTarget(self, action: btnAction, for: .touchUpInside)
let item = UIBarButtonItem()
item.customView = btn
item.tintColor = .red
return item
}
Tint 颜色不变。
如果我简单地创建像
let item = UIBarButtonItem.init(image: btnImage,
style: .plain,
target: self,
action: btnAction)
item.tintColor = .red
色调颜色正在改变。但是,由于某些原因,我需要一个 UIbutton 作为我的 barbuttons 的自定义视图。
如何更改以 UIbutton 为自定义视图的 UIBarbuttonItem 的颜色?
您必须使用 system
类型实例化按钮才能设置色调。然后将色调颜色设置为 btn 本身。
let btn = UIButton(type: .system)
btn.tintColor = .red
或者,您可以在 UIImage
.
btn.setImage(btnImage.withRenderingMode(.alwaysTemplate), for: UIControl.State())
btn.tintColor = .red
- 使用图像作为模板图像:
UIImage(named: "nameOfTheImage")!.withRenderingMode(.alwaysTemplate)
如果图像在按钮上,您必须设置按钮色调颜色。
func createNavigationButton(_ btnImage: UIImage, btnAction: Selector) -> UIBarButtonItem { let btn = UIButton() btn.setImage(btnImage, for: UIControl.State()) btn.frame = CGRect(x: 0, y: 0, width: 30, height: 30) btn.addTarget(self, action: btnAction, for: .touchUpInside) btn.tintColor = .red let item = UIBarButtonItem() item.customView = btn item.tintColor = .red return item }