Жест касания iOS в обзоре UIScroll

У меня есть RootViewController & это связанный файл nib или xib. Это nib загружается при запуске приложения. Этот nib файл содержит UIScrollView в этом scrollview Я поставил другой пользовательский nib - newNib.xib файл.

В этом newNib.xib я внес изменения в конструктор интерфейса, чтобы ответить на RootViewController т.е. пользовательский класс - RootViewController. Затем я связал несколько объектов UIView, которые я создал в RootViewController. Пока все хорошо ...

Я определил некоторые tapGestureRecognisers в RootViewController в UIViews, определенном в newNib.xib но они не отвечают на события крана. Нажмите События, которые я определил в RootViewController, как это -

UITapGestureRecognizer *messagesTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(messagesBucketTap:)];
[messagesTap setNumberOfTapsRequired:1];
[messagesTap setNumberOfTouchesRequired:2];
[self.messagesSnippet addGestureRecognizer:messagesTap];
[messagesTap release];

здесь self.messagesSnippet присутствует в newNib.xib Также я загружаю xib в RootViewController вот так -

[[NSBundle mainBundle] loadNibNamed:@"newNib" owner:self options:nil];

Но все же я не могу получить tapGesture для селектора (messagesBucketTap). Что я делаю не так?

7 голосов | спросил Srikar Appalaraju 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 11 Sep 2011 18:02:14 +0400 2011, 18:02:14

1 ответ


0

Наиболее вероятной причиной является то, что вы забыли установить делегат распознавателя жестов касания , например. [messagesTap setDelegate:self]

Предполагая, что -messagesBucketTap: объявлено в том же классе, измените код на:

    UITapGestureRecognizer *messagesTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(messagesBucketTap:)];
    [messagesTap setDelegate:self];
    [messagesTap setNumberOfTapsRequired:1];
    [messagesTap setNumberOfTouchesRequired:2];
    [self.messagesSnippet addGestureRecognizer:messagesTap];
    [messagesTap release];

Если это не сработает, проверьте, что сказал Джейми, и убедитесь, что вы заявляете:

- (void)messagesBucketTap:(UITapGestureRecognizer *)gestureRecognizer;

а не

- (void)messagesBucketTap;

Кроме того, ты один раз стучишь двумя пальцами? Наконец, убедитесь, что userInteractionEnabled равно ДА на UIView и что exclusiveTouch равно НЕТ для UIScrollView

ответил Andrew 29 +04002011-10-29T11:56:31+04:00312011bEurope/MoscowSat, 29 Oct 2011 11:56:31 +0400 2011, 11:56:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132