将UITapGestureRecognizer(双击)添加到UIButton会减慢将按钮图像设置为选中状态

时间:2012-08-21 19:07:26

标签: ios uibutton uitapgesturerecognizer

我在UIButton上有双击手势。对于未选择和选择的状态,我有两个不同的背景图像。

所有功能都有效,但是当我触摸按钮时,更改所选状态的背景图像会有延迟。

如果我摆脱双击手势,就没有延迟。

如何摆脱这种延迟仍然保持双击手势?

1 个答案:

答案 0 :(得分:2)

猜测一下,它等到可以确定你没有双击之前才能识别按钮想要的单击。可能会在UIView中内置一些内容来帮助手势识别器消除歧义,UIButton正在使用识别器来完成其工作。

考虑到这一点,您是否考虑过根据现有UIControl标注合成双击?所以例如你有:

- (IBAction)buttonWasTapped:(id)sender // wired up to the button
{
    NSTimeInterval timeNow = [NSDate timeIntervalSinceReferenceDate];
    NSTimeInterval difference = timeNow - timeThen;
    timeThen = timeNow; // an instance variable

    if(difference < kYourAllowedTimeBetweenTaps)
    {
        timeThen = 0.0; // to avoid capture of triple taps, etc
        [self buttonWasDoubleTapped:sender];
        return;
    }

    // do normal single tap processing here, if any
}