UIBarButton не работает, когда в суперпредставлении панели инструментов есть UITapGestureRecognizers? - PullRequest
1 голос
/ 15 февраля 2011

Я испытываю это странное поведение.

Я создаю чистый проект (просмотр шаблона), добавляю панель инструментов с кнопкой и подключаю ее к действию.это работает;) НО, тогда, когда я добавляю UITapGestureRecognizer к представлению моего viewcontroller, кнопка панели инструментов перестает работать.(Он нажимается, но его действие не вызывается) Когда я добавляю UITapGestureRecognizer, вызывается только действие, связанное с ним.Это похоже на то, как представление распознавателя uitapgesture скрывало панель инструментов, но на самом деле это не так.

Что здесь происходит?Чего мне не хватает?

- (IBAction)itemAction{
    NSLog(@"%s", _cmd);
    self.view.backgroundColor = [UIColor whiteColor];
}
- (void) tapAction{
    NSLog(@"%s", _cmd);
    self.view.backgroundColor = [UIColor greenColor];
}
- (void)viewWasTapped:(UITapGestureRecognizer *)recognizer{
    if (recognizer.state == UIGestureRecognizerStateRecognized) {
        [self tapAction];
    }
}
- (void)viewDidLoad {
    [super viewDidLoad];
    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewWasTapped:)];
    [tapGestureRecognizer setNumberOfTapsRequired:1];
    [self.view addGestureRecognizer:tapGestureRecognizer];
    [tapGestureRecognizer release]; 
}

РЕДАКТИРОВАТЬ: исходный код проекта можно загрузить с здесь

Заранее спасибо за любые советы

Игнасио

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

В конце концов я нашел причину:

tapGestureRecognizer.cancelsTouchesInView = NO;
0 голосов
/ 08 марта 2012

Я столкнулся с подобной проблемой и нашел этот ответ весьма полезным, особенно потому, что он позволяет выборочно исключать распознаватель жестов в зависимости от того, какой вид был затронут.

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