UIButton UIControlEventTouchUpInside не срабатывает, но срабатывает UIControlEventTouchDown

Я реализую UIButton, и мое событие UIControlEventTouchUpInside не срабатывает, хотя UIControlEventTouchDown срабатывает.

UIButton *btnClose = [UIButton buttonWithType:UIButtonTypeCustom];
NSString *filePathImage = @"img.png";
NSString *filePathImageTap = @"img-tap.png";
UIImage *buttonImage = [UIImage imageWithContentsOfFile:filePathImage];
UIImage *buttonImageTap = [UIImage imageWithContentsOfFile:filePathImageTap];
[btnClose setImage:buttonImage forState:UIControlStateNormal];
[btnClose setImage:buttonImageTap forState:UIControlStateSelected];
[btnClose setImage:buttonImageTap forState:UIControlStateHighlighted];      
[btnClose addTarget:self action:@selector(close:) forControlEvents:UIControlEventTouchUpInside];    
[self.view addSubview:btnClose];

person iosdevnyc    schedule 06.12.2011    source источник
comment
Пожалуйста, опубликуйте реализацию -close:. Я подозреваю, что ваш метод на самом деле не принимает аргумент, но при добавлении двоеточия в ваш селектор отправляется неправильное сообщение.   -  person Mark Adams    schedule 06.12.2011
comment
Отметьте, что он принимает аргумент, тот же метод работает при использовании UIControlEventTouchDown - (void) close:(id)sender { }   -  person iosdevnyc    schedule 06.12.2011
comment
Где вы указали цель и действие для управляющего события UIControlEventTouchDown?   -  person Mark Adams    schedule 06.12.2011
comment
Я только что попробовал протестировать, заменив UIControlEventTouchDown вместо UIControlEventTouchUpInside.   -  person iosdevnyc    schedule 07.12.2011
comment
Хорошо, ребята, я исправил проблему своей глупости. У меня был UITapGestureRecognizer, фиксирующий все события в представлении. Я скучаю по этому. Извините и спасибо за вашу помощь.   -  person iosdevnyc    schedule 07.12.2011
comment
@iosdevnyc, вы должны поместить этот комментарий в качестве ответа, он мне помог. Делаю то же самое....дурррр момент.   -  person bentford    schedule 04.08.2012
comment
@iosdevnyc: Опубликуйте свое решение как ответ и отметьте его как принятое, чтобы облегчить помощь другим.   -  person Coral Doe    schedule 05.09.2012


Ответы (1)


У меня есть предположение, почему он не принимает UIControlEventTouchUpInside:

У меня было два «BannerView» (реклама) в двух разных ViewController. В одном просто работало нормально, в другом видел как коснулся UIButton и появилось второе изображение (более темное). Но селектор не попал. Затем я понял, что Up-Событие было поглощено UISwipeGestureRecognizer из UIImageView внизу. Некоторые Recognizer соревнуются друг с другом. Я искал обзор, чтобы увидеть, что это ведьмы, но ничего не нашел.

Другое решение: если вы видите, что ButtonState не меняется, вам нужно посмотреть, есть ли у вас View над вашей кнопкой.

person louis.leon    schedule 05.09.2012