Как я могу исключить часть из 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:
на новом распознавателе коммутатора.
Надеюсь, что это имеет смысл, это такой многословный класс...:\