我有一个按钮,当用户点击它时,它以一种方式运行,当用户双击它时,它以另一种方式运行。如果用户双击按钮,我不希望发生单击行为。
如果双击被识别,我如何阻止调用触地事件?
最佳答案
您可以使用目标操作;对于 UIControlEvents,您可以使用“UIControlEventTouchDown”和“UIControlEventTouchDownRepeat”,如下所示:
UIButton * button = [UIButton buttonWithType:UIButtonTypeContactAdd];
button.frame = CGRectMake(150, 200, 50, 50);
[button addTarget:self action:@selector(buttonSingleTap:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(buttonMutipleTap:) forControlEvents:UIControlEventTouchDownRepeat];
[self.view addSubview:button];
- (void)buttonSingleTap:(UIButton *)btn{
[self performSelector:@selector(buttonAction:) withObject:btn afterDelay:0.5];
}
- (void)buttonAction:(UIButton *)sender{
NSLog(@"single tap");
}
- (void)buttonMutipleTap:(UIButton *)btn{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(buttonAction:) object:btn];
NSLog(@"mutiple tap!");
}
但是会有0.5秒的延迟!
关于ios - UIButton - 当调用触摸重复时防止调用触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472494/