【问题标题】:MKPinAnnotationView disable selection/highlight but not lift and dragMKPinAnnotationView 禁用选择/突出显示但不提升和拖动
【发布时间】: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


【解决方案1】:

您很可能必须对 pin 进行子类化。这是我能找到的最好的例子。我不能写一个,因为我不在我的电脑前。 https://github.com/j4n0/callout

祝你好运。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多