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

Я занимаюсь разработкой приложения и хочу пролистать разные UIViewControllers с UISwipeGestureRecognizer, Все работает, но есть одна вещь, для которой я не смог найти решение.

Я добавляю UIGestureRecognizers как это

- (void)viewDidLoad {
[super viewDidLoad];
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft)];
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[self.view addGestureRecognizer:swipeLeft];

UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight)];
[swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
[self.view addGestureRecognizer:swipeRight];
}

Теперь я хочу знать, если это возможно, за исключением части self.view где можно провести пальцем к другому виду. Я хочу сделать это вокруг UISwitch,

Может кто-нибудь, пожалуйста, помогите мне?

С наилучшими пожеланиями,

Лукас идет

3 ответа

Вы можете использовать другой UIView и добавить его в self.view, Те UISwipeGestureRecognizer не будет работать внутри этого UIView,

Я предлагаю вам использовать метод делегата распознавателя жестов: gestureRecognizer:shouldReceiveTouch:, в touch Параметр, у вас много информации, например, положение на экране. Вы можете использовать это положение и проверить, находится ли оно выше рамки переключателя. Вернуть yes или же no в зависимости от того, хотите ли вы активировать селектор, связанный с распознавателем жестов, или нет.

Добавить еще UISwipeGestureRecognizer к коммутатору, и, на ваших оригинальных распознавателя жестов, позвоните requireGestureRecognizerToFail: на новом распознавателе коммутатора.

Надеюсь, что это имеет смысл, это такой многословный класс...:\

Другие вопросы по тегам