Как передать "кран" в UIButton, который находится под UIView с UISwipeGestureRecognizer?
У меня есть UIButton под (прозрачным) UIView. В UIView выше добавлен UISwipeGestureRecognizer, и это единственная его цель - обнаружить определенные жесты салфетки. Я хочу, чтобы все другие касания были проигнорированы этим UIView и переданы другим представлениям (например, мой UIButton внизу). В настоящее время UIView выше, кажется, обнаруживает крану (например), ничего не делая (как и должно быть) и не позволяя UIButton под ним получить ответ.
Я бы предпочел не использовать мой собственный распознаватель проводов, если это возможно. Любые решения/советы? Я просто хочу знать, как сказать UIView, чтобы обратить внимание только на определенный тип добавленного распознавателя жестов и игнорировать (и таким образом пропускать к просмотру) все остальные штрихи.
Ответы
Ответ 1
Я, должно быть, вчера был в фанке. Сегодня я проснулся с простым решением. Добавьте UISwipeGesture в представление, которое является надзором как UIView, так и UIButton. Затем, при обработке этих щелчков, выясните, откуда взялся swipe, и находится ли эта точка в кадре, где я использовал UIView. (Как я уже упоминал, единственная причина существования UIView заключалась в определении целевой области для этих жестов.)
Ответ 2
Вы установили:
mySwipeGesture.cancelsTouchesInView = NO;
чтобы прикосновения могли быть отправлены в иерархию представления, а также в виде жестов?
Кроме того, убедитесь, что вид сверху:
theTransparentView.opaque = NO;
theTransparentView.userInteractionEnabled = YES;
У меня был довольно хороший успех, приложив жесты к родительскому представлению, не создавая прозрачный subview сверху для жестов. Вы уверены, что вам нужно это сделать?
Ответ 3
Разве вы не можете поместить свою кнопку поверх представления и добавить к этой кнопке также распознаватели жеста?
В конце концов, ваш UIButton наследует форму UIView через UIControl. Поэтому практически нет ничего, что можно было бы сделать с видом, но не с помощью кнопки.
Ответ 4
В моем случае я исправил его, не используя кнопку, а скорее UITapGestureRecognizer. Мой фоновый указатель был добавлен в фоновый вид, а жест выделения был добавлен к представлению над ним.