我尝试使用UIButton
作为UIBarButtonItem
来获得一些额外的灵活性,这些灵活性在这里并不是很明显,但是必要。
我有以下代码:
let addButton = UIButton(type: .System)
addButton.addTarget(self, action: #selector(boop1(_:)), forControlEvents: .TouchUpInside)
addButton.titleLabel!.numberOfLines = 1
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .Center
let addAttributedString = NSMutableAttributedString(string: "Add")
let attributes: [String: AnyObject] = [NSFontAttributeName: UIFont.boldSystemFontOfSize(17.0), NSForegroundColorAttributeName: view.tintColor, NSParagraphStyleAttributeName: paragraphStyle]
addAttributedString.addAttributes(attributes, range: NSRange(location: 0, length: addAttributedString.length))
addButton.setAttributedTitle(addAttributedString, forState: .Normal)
addButton.sizeToFit()
let barButtonItem = UIBarButtonItem(customView: addButton)
barButtonItem.target = self
barButtonItem.action = #selector(boop2(_:))
navigationItem.rightBarButtonItem = barButtonItem
但是当你按下时,它会像轻敲一样闪烁,然后如果你松开,它会再次闪烁。图形非常奇特。
如何阻止此事?
答案 0 :(得分:0)
这种情况正在发生,因为您为UIBarButtonItem
添加了两个不同的选择器。
首先是:
addButton.addTarget(self, action: #selector(boop1(_:)), forControlEvents: .TouchUpInside)
第二个在这里:
barButtonItem.action = #selector(boop2(_:))
我不确定你为什么这样做,但我确定在UIBarButtonItem
添加任意1个选择器都可以解决问题。