2016-01-12 22 views
5

我正在用UIButton作爲鋼琴鍵創建類似鋼琴的視圖。我應該聽聽什麼UIControlEvents獲得回調,當按鈕獲取並失去突出顯示的狀態?UIButton的哪些控件事件開始和結束高亮顯示狀態

我試圖讓UIButton的子類和highlighted添加屬性觀察員,它工作正常。不過,有時我需要從代碼中手動設置突出顯示的狀態,並且由於無法分辨事件是用戶還是應用程序啓動,所以真的會使其變得混亂。

+0

你認爲你會得到任何回調至連聽到'AllEvents'當修改突出顯示狀態從代碼? – zcui93

+0

如果我理解你的問題,我認爲你應該使用UIControlEventTouchUpInside和UIControlEventTouchUpOutside事件 –

+0

也許使用'boolean'作爲開/關切換來跟蹤狀態... –

回答

3

要模仿鋼琴鍵的行爲我用下面的UIControlEvents

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

得到亮狀態:UIControlEventTouchDown

失去高亮狀態:UIControlEventTouchDragOutside

相關問題