Какие управляющие события начинают и заканчивают выделять состояние 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

Другие вопросы по тегам