UIButton UIControlEventTouchUpInside不会触发,但是UIControlEventTouchDown会触发

ios*_*nyc 6 objective-c uibutton ios uicontrolevents

我正在实施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];
Run Code Online (Sandbox Code Playgroud)

小智 3

我有一个假设为什么它不采取UIControlEventTouchUpInside

我在两个不同的 ViewController 中有两个“BannerView”(广告)。在一个中它工作得很好,在另一个中我看到了如何UIButton触摸并出现了第二个图像(较暗)。但选择器没有被击中。然后我意识到,事件被下面的Upa吸收了。有些相互竞争。我搜索了概述以了解这些女巫,但一无所获。UISwipeGestureRecognizerUIImageViewRecognizer

另一个解决方案:如果您发现 ButtonState 没有改变,您必须查看 Button 上是否有视图。