子类MKAnnotationView

时间:2010-09-15 08:50:53

标签: iphone ios ios4 mkmapview mkannotationview

有人曾成功覆盖setDragState中的方法MKAnnotationView吗? 如果我尝试使用“mkannotationview setDragState”进行谷歌搜索,我只会获得三次点击!其中一个是我在stackoverflow上的另一篇文章;)

引用说当子类化MKAnnotationView子类时必须关心dragstate。但它没有说明如何。仅将拖尾状态设置为MKAnnotationViewDragStateDragging或更确切地说MKAnnotationViewDragStateCanceling似乎还不够。因为如果我这样做,其中一个问题就是mapview没有收到mapView:annotationView:didChangeDragState:fromOldState:委托函数。

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

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

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

再见,

2 个答案:

答案 0 :(得分:3)

参考此主题 请参阅第二个答案,其中自定义注释视图类用于覆盖现有注记视图类。它的工作原理

Subclassing MKAnnotationView and overriding setDragState

答案 1 :(得分:0)

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