多次注册双击

时间:2013-11-14 20:25:13

标签: objective-c uiview uitapgesturerecognizer

我在UIView上创建了识别双击的东西。该操作通过选择器发送。但是,它只会注册一次双击。我想让它多次运行。我认为修复它的一种方法是将注册的抽头再次设置为0,或使用计时器或其他东西。我要感谢每一个答案,谢谢。

UITapGestureRecognizer *DoubleClick = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(DoubleClickRegistered:)];
    DobbelKlikk.numberOfTapsRequired = 2;
    [self.view addGestureRecognizer:DobbelKlikk];

1 个答案:

答案 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永远不为真,那么它将始终切换为白色。我不知道你在哪里设置,但这很可能就是问题。