5

誰かがのメソッドsetDragStateを正常にオーバーライドしたことがありMKAnnotationViewますか?「」でグーグルしようとすると、mkannotationview setDragStateヒット数は3つだけです。それらの1つはstackoverflowに関する私の別の投稿です;)

参照によると、サブクラスMKAnnotationViewをサブクラス化するときは、ドラッグステートを気にする必要があります。しかし、それは正確な方法を述べていません。ドラッグステートを設定するだけでは不十分MKAnnotationViewDragStateDraggingMKAnnotationViewDragStateCancelingようです。mapView:annotationView:didChangeDragState:fromOldState:それを行うと、たとえば、マップビューがデリゲート機能を受け取らないという問題が発生するためです。

スーパークラスでもdragStateを設定してオーバーライドしてみました。ただし、この時点で他のエラーが発生します。たとえば、annotationViewをドラッグして指が画面から外れると、アプリが「キーパスドラッグステートのオブザーバーを削除できません」などでクラッシュします(ただし、私のサブクラスには、知っているオブザーバーはありません)。 。ですから、他にも気をつけるべきことがあるようです。

アップルデベロッパフォーラムのこの投稿https://devforums.apple.com/message/203107#203107アップルの男であるaroonicusは、[MKAnnotationView setDragState:]をオーバーライドする必要があると述べていますが、残念ながら彼はその方法を教えていません。

誰か助けてもらえますか?setDragStateをオーバーライドする方法を知っている人はいますか?setDragStateをオーバーライドするMKAnnotationViewの動作するサブクラスを作成した人はいますか?

さよなら、

ベン

4

2 に答える 2

3

このスレッドを参照してください。カスタムアノテーションビュークラスを使用して既存のクラスをオーバーライドする2番目の回答を参照してください。できます

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 に答える