5

有人曾经成功地覆盖了方法setDragStateMKAnnotationView?如果我尝试用“ mkannotationview setDragState”搜索它,我只会得到三个点击!其中之一是我在 stackoverflow 上的另一篇文章;)

参考资料说,当子MKAnnotationView类化时,子类必须关心拖动状态。但它并没有说到底如何。仅将拖动状态设置为MKAnnotationViewDragStateDragging或者更确切地说MKAnnotationViewDragStateCanceling似乎是不够的。因为如果我只是这样做,那么问题之一就是 mapview 没有接收到mapView:annotationView:didChangeDragState:fromOldState:委托函数。

我试图通过在超类中设置 dragState 来覆盖它。但是此时会发生其他错误:例如,如果我拖动 annotationView 并且我的手指从屏幕上滑出,应用程序会崩溃,并出现“无法删除 keypath dragstate 的观察者”之类的内容(但我的子类没有我知道的任何观察者) . 所以似乎还有其他事情需要关心。

在苹果开发者论坛https://devforums.apple.com/message/203107#203107的这篇文章中,来自苹果的 aroonicus 提到你必须覆盖 [MKAnnotationView setDragState:] 但遗憾的是他没有告诉如何去做。

有人可以帮忙吗?有人知道如何覆盖 setDragState 吗?是否有人创建了 MKAnnotationView 的工作子类来覆盖 setDragState?

再见,

4

2 回答 2

3

请参阅此线程参考第二个答案,其中自定义注释视图类用于覆盖现有的。有用

子类化 MKAnnotationView 并覆盖 setDragState

于 2012-01-13T10:52:29.680 回答
0

可以使用自定义注释。请参阅以下示例项目:http ://digdog.tumblr.com/post/1616858395/note-about-mapkitdraganddrop-3-2

于 2011-04-16T21:09:13.643 回答