【发布时间】:2012-03-15 11:35:09
【问题描述】:
伙计们,
我添加了两个 UILongPressGestureRecognizer。我想要的是当两个按钮被按下 0.3 秒时,启动“shortPressHandler”。如果用户继续按下这两个按钮 1.2 秒,则启动“longPressHandler”。现在我只启动了 shortPressHandler 并且从未启动过 longPressHandler。我认为这可能是因为首先识别了 shortPressGesture 而 longPressGesture 永远没有机会。谁能告诉我如何实现我想要的?提前致谢。
UILongPressGestureRecognizer *longPressGesture =[[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressHandler:)] autorelease];
longPressGesture.numberOfTouchesRequired = 2;
longPressGesture.minimumPressDuration = 1.5;
longPressGesture.allowableMovement = 10;
longPressGesture.cancelsTouchesInView = NO;
longPressGesture.enabled = true;
[self.view addGestureRecognizer:longPressGesture];
UILongPressGestureRecognizer *shortPressGesture =[[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(shortPressHandler:)] autorelease];
shortPressGesture.numberOfTouchesRequired = 2;
shortPressGesture.minimumPressDuration = 0.3;
shortPressGesture.allowableMovement = 10;
shortPressGesture.cancelsTouchesInView = NO;
shortPressGesture.enabled = true;
[self.view addGestureRecognizer:shortPressGesture];
【问题讨论】:
-
谢谢。如果我也想让 shortGesture 即使没有释放按钮也能触发,你知道该怎么做吗?
-
对不起,我没有看到这条消息 - 如果你在你的帖子下写它,你必须用'@name ...'来解决它,如果我理解你的话你想要类似的东西:用户按下,shortPress 在 0.3 秒后被解雇,如果他不释放他的新闻, longPress 在 1.2 秒后被解雇。对吗?
-
@rokjarc 这正是我想要的。谢谢。
-
这个有点棘手:一种快速而肮脏的方法是从 longPressHandler 调用 shortPressHandler。如果您需要在 0.3 秒按下后立即调用 shortPressHandler,那么您很可能必须转接
UIGestureRecognizer。 -
@rokjarc 非常感谢。您能否就我将覆盖哪个功能提供一些帮助?