如何在UIBarButtonItem
上使用信息灯?
我不想使用自定义图像,因为结果不是很好。
我想使用Apple“信息”按钮。
我正在使用Swift
谢谢。
答案 0 :(得分:21)
使用UIBarButtonItem
APIs无法直接创建此类条形按钮。
您可以使用配置了.InfoLight
UIButton
的自定义视图,但建议使用here:
// Create the info button
let infoButton = UIButton(type: .infoLight)
// You will need to configure the target action for the button itself, not the bar button itemr
infoButton.addTarget(self, action: #selector(getInfoAction), for: .touchUpInside)
// Create a bar button item using the info button as its custom view
let infoBarButtonItem = UIBarButtonItem(customView: infoButton)
// Use it as required
navigationItem.rightBarButtonItem = infoBarButtonItem
如果您需要更多帮助,请随时发表评论。
答案 1 :(得分:0)
我可以像这样轻松重复使用:
class InfoBarButtonItem: UIBarButtonItem {
init(_ type: UIButtonType = .infoLight, target: Any, action: Selector) {
super.init()
let button = UIButton(type: type)
button.addTarget(target, action: action, for: UIControlEvents.touchUpInside)
self.customView = button
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
然后你就可以这样使用:
navigationItem.rightBarButtonItem =
InfoBarButtonItem(.infoLight, target: self, action: #selector(anAction(_:)))
答案 2 :(得分:0)
适应mokagio对Obj-C的出色回答:
countriesSeries.data = [
{
id: "US",
url: "https://www.google.com"
}
];
答案 3 :(得分:0)
Swift 4,iOS 12,Xcode 10
另一种方法:
1)将Bar Button Item从对象菜单拖到导航栏。
2)控制从barButtonItem拖动到视图控制器以创建插座。
3)在viewDidLoad中,您可以如下指定UIButton.customView。
let infoButton = UIButton(type: .infoLight)
infoButton.addTarget(self, action: #selector(infoAction), for: .touchUpInside)
infoBarButtonOutlet.customView = infoButton
//where infoBarButtonOutlet is the outlet you created in step 2.
// Be sure to add @objc before func when you create your function.
// for example:
@objc func infoAction () {
}
答案 4 :(得分:0)
您可以在Interface Builder中执行以下操作:
将UIButton对象拖放到工具栏上
将按钮类型设置为“信息灯”