Как включить жест смахивания для UITextView

Как включить распознавание жестов для UITextView?

Это мой код, и прикрепленное к нему событие не запускается. Он работает для нажатий, но не для свайпов.

// Add swipe support for easy textview content clean up
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(eraseTextWithSwipe:)];
[targetContent addGestureRecognizer:swipe];
[swipe release];

Как мне это сделать?


person amok    schedule 13.09.2010    source источник
comment
Я не уверен, поможет ли какое-либо из предложений в этом вопросе; в нем не было общепринятых ответов. stackoverflow.com/questions/2042930/   -  person Greg    schedule 13.09.2010
comment
Спасибо за ваш комментарий, но это не относится, я его видел. При этом используется метод, который не рекомендуется Apple в iPhone 4.x.   -  person amok    schedule 14.09.2010


Ответы (2)


Я нашел решение, которое мне подходит.

Вам нужно установить делегата (ссылаясь на код выше)

swipe.delegate = self;

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

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGesture
{
    yourTextbox.scrollEnabled = NO;
    return YES;
}

повторно включить прокрутку в функции обратного вызова (в приведенном выше примере eraseTextWithSwipe)

person amok    schedule 14.09.2010

Спасибо. Ваше решение работает. Мне просто нужно было установить делегат и вернуть ДА в упомянутом методе делегата. Если не по причинам удобства использования, вам не нужно отключать прокрутку в UITextView.

person blomeyer    schedule 03.10.2010