6

我正在实施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];
4

1 回答 1

3

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

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

另一种解决方案:如果您看到 ButtonState 没有改变,您必须查看您的 Button 是否有视图。

于 2012-09-05T07:51:23.917 回答