【问题标题】:how to detect long gesture on annotationView in iphone sdk如何在 iphone sdk 中的 annotationView 上检测长手势
【发布时间】:2025-12-04 02:00:01
【问题描述】:

我正在开发 MapView 并且我想在 annotationView 上添加 longGesture 以删除特定的注释,为此我在委托中的每个 annotationView 上添加了 longGesture - (MKAnnotationView *)mapView:(MKMapView *)mapview viewForAnnotation:(id )annotation

但是 annoattaionView 没有检测到长手势。有没有办法在 mapview 的 AnnotationView 上添加长手势?

【问题讨论】:

    标签: iphone sdk


    【解决方案1】:

    问题是MKAnnotationView 已经有一个很长的手势识别器来拖动它,因此根据持续时间(不确定拖动的持续时间),如果您不需要拖动,它将转到那个手势识别器您可以通过获取视图的所有手势识别器然后对UILongGesture 执行isKindOfClass,删除它然后添加您自己的来简单地删除那个长手势识别器。

    或者在UILongGesture 上尝试一段较低的时间可能会奏效。

    如果您不需要 MKAnnotationView 手势识别器的默认行为,您也可以像这样禁用注释视图:

    [myAnnotationView setEnabled:NO];,然后将您的识别器添加到注释视图中。

    希望对您有所帮助。

    【讨论】: