Предотвращение сенсорного перехода к суперпредставлению из UIImageView - PullRequest
0 голосов
/ 06 марта 2020

У меня есть собственный ползунок вертикального диапазона, и я управляю движениями головок с помощью touchBegan, touchMoved и touchEnded. Когда я пытаюсь сдвинуть голову, она немного сдвигается, и после этого касания отменяется и начинается интерактивный переход отклонения iOS 13. Я хочу предотвратить передачу касания во время скольжения в суперпредставление. Как мы можем этого достичь.

Заранее спасибо.

1 Ответ

0 голосов
/ 06 марта 2020

Попробуйте использовать другой распознаватель жестов для представления с другим селектором

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tappedOnBubble)];
    [self.bubbleView addGestureRecognizer:tap];

UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tappedOnMainView)];
   [self.view addGestureRecognizer:tap2];


-(void)tappedOnMainView
{
    NSLog(@"touched on main View");
    [self.vwToShow setHidden:NO];
}
-(void)tappedOnView
{
    NSLog(@"tapped on slider");
    [self.vwToShow setHidden:YES];
}

UIView наследует от UIResponder, и базовые c события касания обнаруживаются представлением, которое запускает события касания и начала. Подвиды, которые вы добавили в главное представление, также отвечают методу начала штрихов. Это очень просто c. Вы также добавили метод выбора с распознаванием жестов касания.

Если вы все еще хотите использовать touchBegan, я думаю, вы должны сделать что-то вроде этого:

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event 
{
    if(theTouchLocation is inside your bubble)
    {
        do something with the touch
    }
    else
    {
        //send the touch to the next view in the hierarchy ( your large view )
       [super touchesBegan:touches withEvent:event];
       [[self nextResponder] touchesBegan:touches withEvent:event];
    }
}
...