我有一个按钮,每当按钮突出显示时,我都需要更改其图像。我已经编写了以下代码button.setImage("highlited_image", for: .highlighted)
。如果我专门将按钮的状态设置为突出显示,则该代码有效。当按钮的状态改变时如何获取事件?
答案 0 :(得分:3)
isHighlighted
属性符合KVO,您可以添加观察者
@IBOutlet weak var button: UIButton!
var observation : NSKeyValueObservation?
override func viewDidLoad() {
super.viewDidLoad()
observation = button.observe(\.isHighlighted, options: [.old, .new], changeHandler: { _, change in
if change.oldValue! != change.newValue! { print(change.newValue!) }
})
}
答案 1 :(得分:2)
来自文档:
当触摸事件进入控件的边界时,该控件将突出显示,而当发生触摸事件或触摸事件超出控件的边界时,它将丢失该突出显示...
已简化:UIButton
在用户按下按钮直到用户将其取消按下时都会突出显示。
因此,如果您需要处理按下按钮的时刻,请为事件.touchUpInside
设置按钮的操作
但是,如果您仅对某些状态的图像感兴趣。为状态.normal
和状态.highlighted
设置图片
答案 2 :(得分:0)
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} - {1}">
<Binding Path="PK_ID_Order"/>
<Binding Path="Wording" />
</MultiBinding>
</TextBlock.Text>
应该是
button.setImage("highlited_image", for: .highlighted)
我想...