【发布时间】:2013-08-29 19:35:48
【问题描述】:
我有一个 MKPinAnnotationView,我希望它能够长按并拖动,但不能点击并选择。有时用户会以正确的方式触摸(在 pin 上短暂触摸)并且 pin 将变为突出显示(变暗)而不是抬起和拖动。我使用拖动来显示放大镜,因此当用户触摸图钉并拖动但没有任何反应时,它会有点破坏性。
我是否可以设置某种标志来防止图钉被点击并始终拖动?
我尝试设置以下标志:
annotationView.selected = YES;
annotationView.canShowCallout = NO;
annotationView.highlighted = NO;
这不会阻止选择。我还尝试将.selected 翻转为NO。我想我可以覆盖-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view,但我不确定我可以放什么来绕过选择。而且没有-(BOOL)shouldSelectAnnotationView...函数。
【问题讨论】:
-
您可能必须对 pin 进行子类化,然后侦听触摸事件并以这种方式阻止触摸。
-
@Tony 这就是我想我可能要做的。我希望有更简单的方法。
-
不幸的是它不是很好。我一直在寻找相同类型的东西。我应该把它作为问题的答案吗?
-
@Tony 当然,如果您有一个有效的子类示例,我会接受它。我希望得到一些简单的东西,但如果答案很复杂,那就这样吧。
标签: ios objective-c mkpinannotationview