繁体   English   中英

长按手势识别器问题

[英]Long press gesture recognizer issue

在Interface Builder中,我为MKMapView添加了一个按下手势识别器。

1秒后发送一个事件(我用它来向地图添加一个引脚)。 我已经检查了手势识别器的“取消触摸视图”行为,但我的问题是,一旦识别出长按手势,如果你将手指放在屏幕上并将其拖动到地图视图上,那么事件(很长时间)拖动时会连续发送,好像它实际上是一个拖动手势识别器,导致我的地图中添加了几十个引脚......

我怎样才能解决这个问题 ?

谢谢。

根据文件

长按手势是连续的。 当指定时间段(minimumPressDuration)按下允许的手指数(numberOfTouchesRequired)并且触摸不超出允许的移动范围(allowableMovement)时,手势开始(UIGestureRecognizerStateBegan)。 每当手指移动时手势识别器转换到改变状态 ,并且当任何手指被抬起时, 手势识别器结束(UIGestureRecognizerStateEnded)。

突出重点。

我相信你可能没有在手势识别器的委托方法中过滤状态。

你需要这样的东西: -

- (void)longPressGestureRecognizerStateChanged:(UIGestureRecognizer *)recognizer {
    if (recognizer.state == UIGestureRecognizerStateBegan) {
       // do your stuff...
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM