我正在实施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];
答案 0 :(得分:3)
我假设为什么不采用UIControlEventTouchUpInside
:
我在两个不同的ViewControllers中有两个“BannerView”(广告)。在其中一个它只是在另一个工作正常我看到UIButton
被触摸和第二个图像(较暗)出现。但选择器没有被击中。然后我意识到,Up
- 事件是由UISwipeGestureRecognizer
从UIImageView
下方吸收的。有些Recognizer
互相竞争。我搜索了一个概述,看到这些是巫婆,但一无所获。
另一个解决方案: 如果你看到ButtonState没有改变,你必须查看你的按钮是否有视图。