2012-05-10 1 views
1

Я пытаюсь добавить UIPanGestureController в свой UITableView, чтобы я мог определить, будет ли пользователь вручную панорамироваться, или просто дал начальный удар и посмотрит прокрутку обзора сам по себе. Причина в том, что я хочу привязать к ячейке, как только прокрутка замедляется (представьте себе колесо удачи). Конечно, я не хочу привязываться, когда пользователь панорамирует вручную.UIGestureRecognizer с установкой setDelegate и действием

Однако я могу либо использовать контроллер жестов (и соответственно настроить переменные «прокрутки вручную»), либо прокручивать представление. Использование событий TouchBegin вместо распознавателя жестов вводит новые проблемы, так что это не вариант .

Сначала я изменил вид таблицы, включив в него UIGestureRecognizerDelegate.

После инициализации вида, то я ...

panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panTableView:)]; 
[panGestureRecognizer setDelegate:self]; 
[self.view addGestureRecognizer:panGestureRecognizer]; 

я реализую Бегин функция, чтобы установить BOOL:

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer 
{ 
    isPanning = YES; 
    return NO; 
} 

Всегда возвращаясь NO должен убедиться, что этот жест распознаватель никогда не активен, так как я хочу (и необходимость) использовать собственные методы прокрутки табличного представления.

Проблема: мое действие «panTableView» никогда не называется. Если я не установить делегат, действие вызывается, но я не могу прокручивать, так как распознаватель жестов ловит все мои касания.

Я уже изучал цели. После установки делегата, указатели распознавателя жестов и указатели делегатов совпадают с self.view, действие по-прежнему нацелено на себя с помощью правого селектора.

ответ

0

попробовать

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer 
{ 
    isPanning = YES; 
    return YES; 
} 

и осуществить это

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES 
} 
+2

Работает отлично. Спасибо огромное! –

+0

Нет проблем! Мне нравится помогать. –

Смежные вопросы