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];

1 ответ

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

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

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

Другие вопросы по тегам