Можете ли вы отключить UIButton, не отключая подключенные UIGestureRecognizers? - PullRequest
2 голосов
/ 08 февраля 2012

У меня есть кнопка UIB с 2 функциями: касание и длительное нажатие. Немного похоже на приложение Springboard (домашний экран). Я реализовал его как UIButton с подключенным UILongPressGestureRecognizer.

В некоторых случаях мне нужно отключить действие касания, которое я делаю, установив enabled = NO на моей кнопке. Но, к сожалению, это также отключило мой распознаватель жестов.

Как отключить стандартное поведение UIButton при сохранении активированного распознавателя жестов?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

UIButton является подклассом UIControl. Посмотрите на различные методы в UIControl.
Вы можете указать конкретные методы для вызова ControlEvents (например, ControlEventTouchUpInside a.k.a tap) и для UIEvents.

 - (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event

 - (void)sendActionsForControlEvents:(UIControlEvents)controlEvents

Вы можете удалить действия для управляющих событий с помощью:

 - (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

Или, в зависимости от ваших условий, вы можете просто не выполнять операции внутри вызываемого метода / селектора.

1 голос
/ 08 февраля 2012

Вы можете удалить цель нажатия кнопки и селектор, а затем добавить его снова, когда вам это нужно.Установив enabled = NO;, вы устанавливаете приемники UIControl на NO.

Больше документов Кнопка UIB - включена

...