Я хочу получить двойную функциональность от UIButton.
Когда пользователь нажимает кнопку вниз, я хочу, чтобы она немедленно вызывала поведение A
Но если пользователь затем перед тем, как отпустить кнопку, проведет пальцем за пределы кнопки, я также хотел бы вызвать поведение B. при отпускании.
Итак,
[presetButton addTarget: self
action: @selector( presetButtonHit: )
forControlEvents: UIControlEventTouchDown ];
[presetButton addTarget: self
action: @selector( presetButtonSwipe: )
forControlEvents: UIControlEventTouchUpOutside ];
В качестве контрольного примера я просто запишу 'A' или 'B' из соответствующих методов действия.
А всегда получает удар правильно.
Однако B является спорадическим. Я могу методично провести пальцем вниз, хорошо перетащить за пределы кнопки, подождать секунду и отпустить. И обычно это не огонь. В качестве альтернативы, если я сделаю быстрый щелчок, он с большей вероятностью выстрелит. Но все равно 50-50.
Все, что у меня есть, это UIView с фоновым изображением и шестью кнопками.
Что я могу сделать, чтобы отследить это?
Я бы предпочел разобраться с этим, чем бездельничать, отслеживая прикосновения вверх и вниз; но если я должен сделать это, есть ли чистый способ? Из того, что я вижу, это будет королевская PITA, и мне нужно будет выяснить, ударили ли касания вверх / вниз до того, как нажали касание моей кнопки вверх / вниз, установили флаги и т. Д.