Какие управляющие события начинают и заканчивают выделять состояние UIButton
Я создаю фортепианный вид с UIButton
как клавиши пианино. Какие UIControlEvents
я должен слушать обратные вызовы, когда кнопка получает и теряет выделенное состояние?
Я пытался сделать подкласс UIButton
и добавить свойства наблюдателя для highlighted
и это работало нормально. Однако иногда мне нужно установить выделенное состояние вручную из кода, и это действительно портит его, так как невозможно определить, было ли событие инициировано пользователем или приложением.
2 ответа
Решение
Чтобы имитировать поведение клавиш пианино, я использовал следующее UIControlEvents
:
self.addTarget(self, action: "pressed", forControlEvents: [.touchDown])
self.addTarget(self, action: "released", forControlEvents: [.touchDragExit, .touchUpInside, .touchUpOutside, .touchCancel])
Выделяется состояние:UIControlEventTouchDown
потерять выделенное состояние:UIControlEventTouchDragOutside