Добавьте функциональность в стандартный распознаватель Pan Gesture в UIScrollView - PullRequest
6 голосов
/ 04 декабря 2011

Я пытаюсь отследить, где находится палец в UIScrollView.У меня есть подкласс UIScrollView (см. Ниже), но, к сожалению, распознаватель жестов, который я добавляю, переопределяет стандартный.

В результате я получаю NSLog(@"Pan"), но, к сожалению, представление больше не прокручивается..

Как мне заставить оба распознавателя жестов работать одновременно?

Спасибо.

- (void)viewDidLoad:(BOOL)animated
{
    [super viewDidLoad:animated];

    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    [scrollView addGestureRecognizer:panRecognizer];
}


- (void)pan:(id)sender {
    NSLog(@"Pan");
}

Ответы [ 2 ]

14 голосов
/ 29 марта 2012

Если вы хотите, чтобы он не переопределял стандартный, вы просто должны позволить одновременно распознавать оба.

- (void)viewDidLoad:(BOOL)animated
{
    [super viewDidLoad:animated];

    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    panRecognizer.delegate = self;
    [scrollView addGestureRecognizer:panRecognizer];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
     return TRUE;
}


- (void)pan:(id)sender {
    NSLog(@"Pan");
}
4 голосов
/ 05 декабря 2011

РЕДАКТИРОВАТЬ : этот метод работает! Вам просто нужно установить canCancelContentTouches как можно скорее (я делаю это в viewDidLoad).

ОРИГИНАЛЬНЫЙ ОТВЕТ : я попробовал новый подход, но, к сожалению, он не работает полностью.

Вместо добавления распознавателя жестов я подклассифицирую UIScrollView и пишу свои собственные touchesBegan, touchesMoved и т. Д.

Таким образом, я знаю, где пользователь касается, НО, к сожалению, PanGestureRecognizer запускает touchesCancelled каждый раз, когда я начинаю прокручивать , даже после установки canCancelContentTouches на NO .

Кто-нибудь знает почему? Я также нашел это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...