Ios 什么控制事件开始和结束突出显示UIButton的状态

Ios 什么控制事件开始和结束突出显示UIButton的状态,ios,swift,uibutton,uicontrolevents,Ios,Swift,Uibutton,Uicontrolevents,我正在创建类似钢琴的视图,使用ui按钮作为钢琴键。当按钮获取和丢失突出显示状态时,我应该侦听什么UIControlEvents以获取回调 我试图创建UIButton的子类,并为突出显示的添加属性观察器,但效果很好。但是,有时我需要从代码手动设置突出显示状态,这确实会弄糟,因为无法判断事件是用户还是应用程序启动的。获取突出显示状态:UIControlEventTouchDown 丢失突出显示状态:UIControlEventTouchDragOutside为了模拟钢琴键行为,我使用了以下UICon

我正在创建类似钢琴的视图,使用
ui按钮
作为钢琴键。当按钮获取和丢失突出显示状态时,我应该侦听什么
UIControlEvents
以获取回调


我试图创建
UIButton
的子类,并为突出显示的
添加属性观察器,但效果很好。但是,有时我需要从代码手动设置突出显示状态,这确实会弄糟,因为无法判断事件是用户还是应用程序启动的。

获取突出显示状态:
UIControlEventTouchDown


丢失突出显示状态:
UIControlEventTouchDragOutside
为了模拟钢琴键行为,我使用了以下
UIControlEvents

self.addTarget(self, action: "pressed", forControlEvents: [.touchDown])
self.addTarget(self, action: "released", forControlEvents: [.touchDragExit, .touchUpInside, .touchUpOutside, .touchCancel])

您认为当从代码中修改突出显示的状态时,您是否会收到任何回调,甚至可以收听
AllEvents
?如果我正确理解您的问题,我认为您应该使用UIControlEventTouchUpInside和UIControlEventTouchUpOutside事件可能使用
布尔值
作为开/关切换来跟踪状态…您可能还需要
touchDragEnter
要触发
按下
您可能也不需要
touchUpOutside
,因为它必然发生在
touchDragExit