有人成功地覆盖了MKAnnotationView
中的setDragState
方法吗?
如果我使用"mkannotationview setDragState
"进行谷歌搜索,只会得到三个结果!其中一个是我在stackoverflow上发的另一篇文章 ;)
参考文献说,在子类化MKAnnotationView
时,子类必须关心拖动状态。但它并没有说明具体如何做。仅将拖动状态设置为MKAnnotationViewDragStateDragging
或MKAnnotationViewDragStateCanceling
似乎不够。因为如果我只这样做,例如其中一个问题是地图视图不会接收mapView:annotationView:didChangeDragState:fromOldState:
代理函数。
我尝试通过在超类中也设置dragState来覆盖它。但此时会出现其他错误:例如,如果我拖动注释视图并且我的手指离开屏幕,应用程序会崩溃,并显示类似于“无法删除观察者的键路径dragstate”的内容(但我知道我的子类没有任何观察者)。所以似乎还有其他事情需要关心。
在苹果开发者论坛上https://devforums.apple.com/message/203107#203107,来自苹果的aroonicus提到你必须重写[MKAnnotationView setDragState:],但遗憾的是他没有说明如何操作。有人能帮忙吗?有人知道如何重写setDragState吗?有人创建了一个覆盖setDragState的MKAnnotationView的工作子类吗?
再见,
Ben