UISwitch запускает UISwipeGestureRecognizer

Я устанавливаю распознаватель жестов (проведите вправо) в представлении следующим образом:

[self.currentViewController.view addGestureRecognizer:self.swipeRecognizer];

Однако в представлении есть некоторые элементы управления пользовательским интерфейсом, которые реагируют на прикосновения. Это настраиваемые переключатели, которые позволяют включать и выключать их, перемещая их точно так же, как UISwitch. Поэтому, когда вы перемещаете один из переключателей вправо, вызывается распознаватель жестов смахивания.

Я все еще хочу, чтобы распознаватель смахивания оставался на остальной части экрана, но как я могу отменить его, если вы касаетесь одного из переключателей?


person soleil    schedule 16.05.2013    source источник


Ответы (1)


Нашел хорошее решение здесь.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if (([touch.view isKindOfClass:[UIControl class]])) {
        return NO;
    }
    return YES;
}
person soleil    schedule 16.05.2013