我在UIView上创建了识别双击的东西。该操作通过选择器发送。但是,它只会注册一次双击。我想让它多次运行。我认为修复它的一种方法是将注册的抽头再次设置为0,或使用计时器或其他东西。我要感谢每一个答案,谢谢。
UITapGestureRecognizer *DoubleClick = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(DoubleClickRegistered:)];
DobbelKlikk.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:DobbelKlikk];
答案 0 :(得分:3)
我将其抽象出来,以便您可以看到它会起作用。问题出在您的选择器中,它与UITapGestureRecognizer
UITapGestureRecognizer *tapRecog = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(weeee)];
tapRecog.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:tapRecog];
- (void)weeee
{
NSLog(@"Two taps");
self.wee = !self.wee;
if (!self.wee) {
self.view.backgroundColor = [UIColor redColor];
NSLog(@"Wee is false");
} else {
self.view.backgroundColor = [UIColor whiteColor];
NSLog(@"Wee is true");
}
}
如果您将其添加到项目(包含BOOL
的{{1}}属性并在wee
中设置),则每次双击时背景颜色都会发生变化。
关于你的代码,我建议设置一些断点并找出设置的值和设置的值。在某个地方,有些事情不会发生在您期望它发生的方式上。例如,如果viewDidLoad
永远不为真,那么它将始终切换为白色。我不知道你在哪里设置,但这很可能就是问题。