拖动注释视图后,我的地图出现问题:当我更改平移地图的区域时,拖动的注释在屏幕中保持固定(未拖动的其他注释正确显示,问题出在每个注释视图上)被拖动;注意注释视图继续可以选择用于标注和拖动,我唯一能看到的问题是当我平移地图时它不会移动)
我有什么解决方案吗?这是ios 7.1的一个已知错误吗?或者我在代码中遗漏了什么?
似乎代码应该关心做最后一次转换来重置注释视图,这解决了这个问题:
-(void)setDragState:(MKAnnotationViewDragState)dragState animated:(BOOL)animated {
[super setDragState:dragState animated:animated];
if (dragState==MKAnnotationViewDragStateStarting) {
[...
} else if (dragState==MKAnnotationViewDragStateEnding || dragState==MKAnnotationViewDragStateCanceling) {
...
self.dragState = MKAnnotationViewDragStateNone;
}
}
如果拖动注释,则必须在其委托方法中将其拖动状态设置为none。这段代码解决了我的问题
- (void)mapView:(MKMapView *)mapView
annotationView:(MKAnnotationView *)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState
fromOldState:(MKAnnotationViewDragState)oldState
{
if (newState == MKAnnotationViewDragStateEnding)
{
..... your code.....
annotationView.dragState=MKAnnotationViewDragStateNone;
}
}