我正在将我的应用程序(MyWorld)更新为iOS 7。 该应用程序的一个功能是您可以在地图视图上拖动图钉。 它似乎在iOS7中被打破了。
重新创建问题的步骤:
每当我滚动地图视图时,注释都会随地图一起移动。它似乎没有附加到右视图或图层?如果引脚没有被拖动,则地图视图似乎工作正常并且注释保持在定义的位置。 我想知道这是我的错误还是已知问题?
我创建了一个虚拟的MapViewTest项目,用于说明github上的问题:https://github.com/DJMobileInc/MapViewTest
答案 0 :(得分:18)
这是来自MKAnnotationView Class Reference,对于MKAnnotationViewDragStateNone常量:
MKAnnotationViewDragStateNone
视图不参与拖动操作。当拖动结束或被取消时,注释视图负责将自身返回到此状态。
要解决此问题,地图视图委托将需要在注释结束或取消其拖动操作时将注释视图的dragState设置回MKAnnotationViewDragStateNone。
例如:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState
fromOldState:(MKAnnotationViewDragState)oldState
{
if (newState == MKAnnotationViewDragStateEnding) {
// custom code when drag ends...
// tell the annotation view that the drag is done
[annotationView setDragState:MKAnnotationViewDragStateNone animated:YES];
}
else if (newState == MKAnnotationViewDragStateCanceling) {
// custom code when drag canceled...
// tell the annotation view that the drag is done
[annotationView setDragState:MKAnnotationViewDragStateNone animated:YES];
}
}
答案 1 :(得分:0)
我有同样的问题,我解决了将“setDragState”添加到我的MKAnnotationView类。
这是一个旧的解决方案,但它对我有用(iOS7):https://stackoverflow.com/a/4457772/2410800
答案 2 :(得分:0)
快速解决方案:
Activity