Несмотря на то, что здесь есть много полезной информации, я не смог найти быстрого ответа, в котором бы было все это.
Если вы хотите различить, является ли пролистывание left
или right
или up
или down
, вам нужно создать новый UISwipeGestureRecognizer
для каждого направления.
Однако!Это не так уж и плохо, потому что вы можете направить каждый из ваших распознавателей жестов к одному и тому же селектору , который затем может использовать оператор switch, как вы могли ожидать.
Первый , добавьте распознаватели жестов для каждого направления и направьте их к одному и тому же селектору:
- (void)setupSwipeGestureRecognizers
{
UISwipeGestureRecognizer *rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(userDidSwipeScreen:)];
rightSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
UISwipeGestureRecognizer *leftSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(userDidSwipeScreen:)];
leftSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:rightSwipeGestureRecognizer];
[self.view addGestureRecognizer:leftSwipeGestureRecognizer];
}
Секунда , различайте направления с помощью оператора switch:
- (void)userDidSwipeScreen:(UISwipeGestureRecognizer *)swipeGestureRecognizer
{
switch (swipeGestureRecognizer.direction) {
case UISwipeGestureRecognizerDirectionLeft: {
// Handle left
break;
}
case UISwipeGestureRecognizerDirectionRight: {
// Handle right
break;
}
default: {
break;
}
}
}