场景:
点击地图上的marker跳转页面,返回此页面时,再次点击此marker没反应。
原因:
高德里点击marker后,需要实现取消点击marker方法,此marker才能再次点击(比如点击地图别的地方,就会实现取消点击,但是连续点击的话就会出现不响应的问题)
解决:
//取消点击marker
-(void)mapView:(MAMapView *)mapView didDeselectAnnotationView:(MAAnnotationView *)view{
NSLog(@"取消点击marker");
}
//点击marker 返回mark数据(原生发命令反RN-监听)
- (void)mapView:(MAMapView *)mapView didSelectAnnotationView:(MAAnnotationView *)view{
NSLog(@"点击marker");
MAPointAnnotation *annotaion = (MAPointAnnotation *)view.annotation;
NSString *latitude = [NSString stringWithFormat:@"%lf",annotaion.coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%lf",annotaion.coordinate.longitude];
for (int i = 0; i < self.marksInfoArr.count; i ++) {
if([latitude isEqualToString:[self.marksInfoArr[i] valueForKey:@"latitude"]] && [longitude isEqualToString:[self.marksInfoArr[i] valueForKey:@"longitude"]]){
[self.eventEmiiter callBackRNMarker_MakerEvent:self.marksInfoArr[i]];
[self.routeMapView deselectAnnotation:annotaion animated:NO];//取消选中
}
}
}
此方法可以直接走取消点击方法,无需用点击地图的别的地方的方式
[self.routeMapView deselectAnnotation:annotaion animated:NO];//取消选中