Предотвратите отключенный UIButton от распространения сенсорных событий

Мое приложение имеет два наложения UIButtons. Главная кнопка может время от времени отключаться. Однако в этом случае любые сенсорные события, которые это получает, кажется, передаются к базовому представлению, которое в моем случае является другой кнопкой.

То, в чем я нуждаюсь, является главной кнопкой, прерывающей все касания и препятствующей тому, чтобы они достигли нижней кнопки, даже в нерабочем состоянии (я был бы счастлив, даже если это определяло действие, вызывается в нерабочем состоянии).

До сих пор я попробовал:

[topButton setUserInteractionEnabled:YES];

и

[topButton setExclusiveTouch:YES];

хотя более поздний случай является, вероятно, нежелательным, так как мне все еще нужны нижние события ответа кнопки, если это - первое нажатое представление. Так или иначе ни один из них не работает.

17
задан Mihai Damian 13 January 2010 в 08:51
поделиться

1 ответ

Создать подкласс кнопки, а затем переопределить эти методы так, чтобы кнопка перехватывала события, но игнорировала их, если какое-либо свойство кнопки установлено на NO:

touchesBegan:withEvent:
touchesCancelled:withEvent:
touchesEnded:withEvent:
touchesMoved:withEvent:

Это методы UIResponder.

Пусть они просто вызовут свой [супер ...] метод, если вы хотите, чтобы событие было обработано, в противном случае просто не вызывайте его и не возвращайте, если вы хотите, чтобы события "съели".

Также смотрите это, если это необходимо: Наблюдение за многосенсорными жестами в UITableView

1
ответ дан 30 November 2019 в 12:43
поделиться