Ваш код предполагает, что вы используете UIGestureRecognizer
(скорее всего, UITapGestureRecognizer
) для обнаружения первоначального нажатия.Проблема в том, что UIGestureRecognizer
является жадным и мешает UIButton
получать прикосновение.
Вам нужно будет сделать некоторое смещение, чтобы отключить распознаватель жестов после первоначального обнаружения, а затем снова включить его после воспроизведения.
UIGestureRecognizer имеет свойство
@property(nonatomic, getter=isEnabled) BOOL enabled
, или вы можете выбрать реализацию UIGestureRecognizerDelegate
и предоставить реализацию
gestureRecognizer:shouldReceiveTouch:
очень простая попытка может выглядеть так:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
{
return ![touch.view isKindOfClass:[UIButton class]];
}
и не забудьте установить делегата на распознаватель жестов
myGesture.delegate = self;