【发布时间】:2012-08-05 12:08:07
【问题描述】:
我是 iOS 新手。我使用了这个答案中的代码:https://stackoverflow.com/a/3999583/1572234
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState
fromOldState:(MKAnnotationViewDragState)oldState
{
if (newState == MKAnnotationViewDragStateEnding)
{
NSLog(@"didChangeDragState");
}
}
- (void) mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)annotationView
{
if ([[annotationView.annotation title] isEqualToString:@"2nd"]||[[annotationView.annotation title] isEqualToString:@"3rd"])
{
NSLog(@"didSelectAnnotationView");
}
}
但是在我尝试拖动 pin 3 次后,我在调试区看到了这个:
2012-08-05 14:47:06.962 TestApp[1692:11603] didSelectAnnotationView
2012-08-05 14:47:11.825 TestApp[1692:11603] didChangeDragState
2012-08-05 14:47:16.269 TestApp[1692:11603] didSelectAnnotationView
2012-08-05 14:47:20.205 TestApp[1692:11603] didChangeDragState
2012-08-05 14:47:20.207 TestApp[1692:11603] didChangeDragState
2012-08-05 14:47:24.033 TestApp[1692:11603] didSelectAnnotationView
2012-08-05 14:47:26.811 TestApp[1692:11603] didChangeDragState
2012-08-05 14:47:26.814 TestApp[1692:11603] didChangeDragState
2012-08-05 14:47:26.816 TestApp[1692:11603] didChangeDragState
我只需要一次调用 NSLog(@"didChangeDragState"),每次我拖动图钉时,我错过了什么?请帮忙。
【问题讨论】:
-
Ending 状态应该只在 pin 掉落时发生一次,但在此之前 pin 可能会经历多个状态。您确定日志消息来自发布的代码吗?试试这个:
NSLog(@"didChangeDragState, title=%@, os=%d, ns=%d", annotationView.annotation.title, oldState, newState);和ns=4应该只在引脚掉落时出现。
标签: ios xcode android-mapview