Как сбросить UIGestureRecognizer? - PullRequest
3 голосов
/ 20 февраля 2012

У меня есть подпредставление внутри представления.Это представление имеет PanGestureRecognizer.Я хочу, чтобы пользователь мог увеличивать внутри веб-просмотра, перемещаться, уменьшать и т. Д. Но я хочу, чтобы, когда пользователь достигал левого края веб-просмотра, распознаватели жестов в веб-представлении игнорировались, и из представления отображался только PanGestureRecognizer.Позвонил.

Что ж, я выполнил это с помощью этого кода:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
float coordY = scrollView.contentOffset.y;
float correctionOffsetRightSide = scrollView.contentSize.width-webView.bounds.size.width;

  if(scrollView.contentOffset.x <= 0)
  {
    [delegate viewOnlyRecognizeItsPan];
    [scrollView setContentOffset:CGPointMake(0, coordY)];
  }

  else if (scrollView.contentOffset.x >= correctionOffsetRightSide)
  {
    [delegate viewOnlyRecognizeItsPan];
    [scrollView setContentOffset:CGPointMake(correctionOffsetRightSide, coordY)];
  }
}



-(void)viewOnlyRecognizeItsPan
{
    for (UIGestureRecognizer *gesture in [[[[arrayDeAbas objectAtIndex:currentViewTag] webView] scrollView] gestureRecognizers])
    {
        [gesture requireGestureRecognizerToFail:panRecognizer];
    }
}

"arrayDeAbas" - это mutableArray, который хранит веб-просмотры.

Моя проблема: после пользователяприкоснувшись к кнопке, мне нужно сбросить «жесты», чтобы больше не требовалось, чтобы panRecognizer перестал работать.Как я мог это сделать?

РЕДАКТИРОВАНИЕ: Хорошо, я нашел решение.Вместо того, чтобы использовать requireGestureRecognizerToFail :, я могу просто установитьEnablle в YES или NO.

-(void)turnPanON
{
    for (UIGestureRecognizer *gesture in [[[[arrayDeAbas objectAtIndex:currentViewTag] webView] scrollView] gestureRecognizers])
    {
        gesture.enabled = NO;
    }
}

-(void)turnPanOFF;
{
   for (UIGestureRecognizer *gesture in [[[[arrayDeAbas objectAtIndex:currentViewTag] webView] scrollView] gestureRecognizers])
   {
    gesture.enabled = YES;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...