【问题标题】:How to detect hold after pan/drag event (UIGestureRegonizer / iOS)如何在平移/拖动事件后检测保持 (UIGestureRecognizer / iOS)
【发布时间】:2012-11-07 16:44:05
【问题描述】:

只是想知道您是否有任何提示来识别首先是拖动(平移)手势,然后如果用户继续握住手指,另一个“按住”事件?

所以我想要的效果是常规平移事件会在移动完成后执行其操作,如果用户握住手指,经过短暂的延迟后,会发生另一个事件。 此事件应继续触发,直到手指被抬起。希望这是有道理的。

我尝试将UIPanGestureRecognizerUILongPressGestureRecognizer 结合使用,但长按事件更多的是点击、按住然后滑动。我想要反过来。我也尝试了一个常规的点击事件,但是直到取景器从屏幕上移除后才会触发?

谢谢

【问题讨论】:

    标签: objective-c ios


    【解决方案1】:

    您可能需要使用计时器或 dispatch_after 来模拟您的高级识别器。

    -(void)panGesture:(UIPanGestureRecognizer *)gesture;
    {
    
        if ([gesture state] == UIGestureRecognizerStateBegan || [gesture state] == UIGestureRecognizerStateChanged) {
            fireEvent = YES;
            //Alternatively, use display_after
            [self performSelector:@selector(fireAnotherEventIfNecessary) withObject:nil afterDelay:2];
        } else {
            fireEvent = NO;
        }
    }
    
    -(void)fireAnotherEventIfNecessary {
    
        if (fireEvent) {
            // Fire Event
        }
    }
    

    【讨论】:

    • 不错。所以它保持原来的平移手势,如果手指仍然向下,就会触发另一个。我会尝试它,但认为如果没有触摸运动,(连续)平移事件实际上不会触发?更复杂的是,新的偶数也应该是连续的(即,一直射击直到手指抬起)。干杯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    相关资源
    最近更新 更多