0

我创建了一些可以识别 UIView 上的双击的东西。动作通过选择器发送。但是,它只会注册一次双击。我希望它运行多次。我认为修复它的一种方法是将注册的水龙头再次设置为 0,或者使用计时器或其他东西。我会感谢每一个答案,谢谢。

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

1 回答 1

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属性wee并将其设置在 中viewDidLoad),则每次双击时背景颜色都会发生变化。

关于您的代码,我建议设置一些断点并弄清楚设置了哪些值以及它们设置为什么。在某个地方,有些事情并没有按照您期望的方式发生。例如,如果isTorchActive永远不会为真,那么它将始终切换为白色。我不知道你在哪里设置,但这很可能是问题所在。

于 2013-11-14T21:00:51.530 回答