2010-09-15 24 views
5

¿Alguna vez alguien anuló con éxito el método setDragState en MKAnnotationView? Si intento googlearlo con "mkannotationview setDragState" ¡solo recibo tres visitas! Uno de ellos es mi otra publicación en stackoverflow;)Subclase MKAnnotationView

La referencia dice que cuando se subclasifica MKAnnotationView, la subclase debe preocuparse por el estado de arrastre. Pero no dice cómo exactamente. Establecer solamente el estado de arrastre en MKAnnotationViewDragStateDragging o más bien MKAnnotationViewDragStateCanceling parece no ser suficiente. Porque si solo hago eso, uno de los problemas es que la vista de mapa no recibe la función de delegado mapView:annotationView:didChangeDragState:fromOldState:.

Intenté anularlo configurando el dragState también en la superclase. Pero en este punto ocurren otros errores: por ejemplo, si arrastro el anotación View y mi dedo sale de la pantalla, la aplicación falla con algo así como "no puedo eliminar el observador para keypath arrasstate" (pero mi subclase no tiene ningún observador que conozca) . Entonces parece que hay otras cosas de las que preocuparse.

En esta publicación en el foro de desarrolladores de Apple https://devforums.apple.com/message/203107#203107 aroonicus, un chico de Apple, menciona que debes anular [MKAnnotationView setDragState:] pero lamentablemente no dice cómo hacerlo.

¿Alguien puede ayudar? ¿Alguien sabe cómo anular setDragState? ¿Alguien creó una subclase de trabajo de MKAnnotationView anulando setDragState?

adiós,

Ben

Respuesta