如何更改 UINavigationBar 项目图像?
Posted
技术标签:
【中文标题】如何更改 UINavigationBar 项目图像?【英文标题】:How to change UINavigationBar item image? 【发布时间】:2016-03-10 14:26:47 【问题描述】:如何在单击导航栏项目图像时更改它?我正在尝试这个:
self.navigationItem.rightBarButtonItem?.image = UIImage(named: "bookmark")
但它不会更改/替换项目的图像。我做错了什么?
【问题讨论】:
【参考方案1】:您需要创建一个 UIBarButtonItem 并设置它的图像。
例如
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "imageName"), style: .Plain, target: self, action: "yourActionOrNil")
【讨论】:
【参考方案2】:let infoImage = UIImage(named: "my-icon")
let imgWidth = infoImage?.size.width
let imgHeight = infoImage?.size.height
let button:UIButton = UIButton(frame: CGRect(x: 0,y: 0,width: imgWidth!, height: imgHeight!))
button.setBackgroundImage(infoImage, forState: .Normal)
button.addTarget(self, action: Selector("openInfo"), forControlEvents: UIControlEvents.TouchUpInside)
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)
=> UIBarButtonItem(image:style:target:action:)
构造函数仅适用于透明 PNG,我还必须设置 clearColor 以外的按钮 tintcolor。
【讨论】:
以上是关于如何更改 UINavigationBar 项目图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 AppDelegate 更改 UINavigationBar 背景颜色
如何更改 UINavigationBar 标题的字体和文字颜色
如何从情节提要中更改 UINavigationBar 标题和后退按钮颜色?
如何根据 UINavigationController 中显示的 UIViewController 更改 UINavigationBar