iOS 高德地图 marker点击与取消点击

场景:
点击地图上的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];//取消选中

你可能感兴趣的:(iOS 高德地图 marker点击与取消点击)