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

What control events start and end highlight state of UIButton

我正在用 UIButton 作为钢琴键创建类似钢琴的视图。 UIControlEvents 当按钮进入和失去突出显示状态时,我应该监听什么以获得回调?

我尝试创建 UIButton 的子类并为 highlighted 添加 属性 观察者并且它工作正常。然而,有时我需要从代码中手动设置突出显示状态,这真的搞砸了,因为无法判断事件是用户还是应用程序发起的。

获取高亮状态:UIControlEventTouchDown

失去高亮状态:UIControlEventTouchDragOutside

为了模仿钢琴键的行为,我使用了以下 UIControlEvents

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