2010-09-15 25 views
5

有人曾經成功覆蓋MKAnnotationView中的方法setDragState嗎? 如果我嘗試谷歌它與「mkannotationview setDragState」我只得到三擊!其中之一是我在stackoverflow上的其他帖子;)子類MKAnnotationView

該引用說,當子類MKAnnotationView子類必須關心dragstate。但它並沒有說明如何。只有將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?

再見,

回答