#iphone #objective-c #xcode #uigesturerecognizer #gesture-recognition
#iPhone #objective-c #xcode #uigesturerecognizer #распознавание жестов
Вопрос:
Я хотел бы реализовать распознаватель жестов (действие салфетки) для кнопки. Проблема в том, что кнопки создаются программно и существуют или не существуют в зависимости от нескольких условий. Итак, я не знаю, есть ли кнопки и сколько их.
Я знаю, что мне нужно что-то вроде:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (touch.view == aButtonView) {
//get the button's tag
}
}
Конечно, оператор if должен возвращать Yes при нажатии любой кнопки просмотра…
У кого-нибудь есть идеи о том, каким должно быть слово aButtonView
? И возможно ли это вообще? Заранее спасибо.
Ответ №1:
Вам следует подумать об использовании UISwipeGestureRecognizer
экземпляров. Прикрепите распознаватель жестов к объектам кнопки —
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSwipe:)];
swipe.direction = UISwipeGestureRecognizerDirectionUp;
[button addGestureRecognizer:swipe];
[swipe release];
и в handleSwipe:
- (void) handleSwipe:(UISwipeGestureRecognizer *)swipe {
NSInteger tag = swipe.view.tag;
}
это должно быть if ( [gestureRecognizer.view isKindOfClass:[UIButton class]] ) {
Комментарии:
1. Вау, дэюм, вот почему я ТАК люблю
2. @Deepak: Хммм, хотя поначалу это выглядело неплохо, похоже, что это не работает. Он никогда не возвращает YES для инструкции, которую вы описали, даже если действие кнопки выполняется после отпускания кнопки (touch up). Есть идеи?
3. К чему вы подключаете распознаватель жестов?
4. У меня есть контроллер представления, содержащий табличное представление. В ячейках табличного представления находятся кнопки. Мне нужно распознать свайп по этой кнопке. Кнопки добавляются в тот же класс (viewcontroller, делегат tableview), в котором находится gesturerecognizer. Итак, я добавил gesturerecognizer в viewcontroller. Правильно?
5. Имеет ли свайп определенное направление?