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

时间:2011-12-06 18:23:09

标签: objective-c ios uibutton 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];

1 个答案:

答案 0 :(得分:3)

我假设为什么不采用UIControlEventTouchUpInside

我在两个不同的ViewControllers中有两个“BannerView”(广告)。在其中一个它只是在另一个工作正常我看到UIButton被触摸和第二个图像(较暗)出现。但选择器没有被击中。然后我意识到,Up - 事件是由UISwipeGestureRecognizerUIImageView下方吸收的。有些Recognizer互相竞争。我搜索了一个概述,看到这些是巫婆,但一无所获。

另一个解决方案: 如果你看到ButtonState没有改变,你必须查看你的按钮是否有视图。