iOS 接百度地图API中的一个小坑😓

关于设置代理 直接在此复制官方的设置:
-(void)viewWillAppear:(BOOL)animated
{
[_mapView viewWillAppear];
_mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
}
-(void)viewWillDisappear:(BOOL)animated
{
[_mapView viewWillDisappear];
_mapView.delegate = nil; // 不用时,置nil
}
我所遇到的坑是,自定义大头针时的坑。因为设置代理是在viewWillAppear中,而我直接就在viewdidload中直接添加大头针,所以很坑的事情来了,怎么都不显示自定义的大头针图片。

  • (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation{

    if ([annotation isKindOfClass:[BMKPointAnnotation class]]) {

      BMKPinAnnotationView *newAnnotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"myAnnotation"];
      newAnnotationView.pinColor = BMKPinAnnotationColorPurple;
      //newAnnotationView.animatesDrop = YES;// 设置该标注点动画显示
      newAnnotationView.annotation = annotation;
      newAnnotationView.paopaoView = nil;
      newAnnotationView.image = [UIImage imageNamed:@"btn_weizhi_selected"];
          UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAciton:)];
          //设置点按的次数
      
          tap.numberOfTapsRequired = 1;
      
          //设置点按的手指的数
      
          tap.numberOfTouchesRequired = 1;
      
          // 2.为控件添加手势
      
          [newAnnotationView addGestureRecognizer:tap];
      return newAnnotationView;
    

    }
    return nil;
    }
    上述是mapview的一个代理方法,如果你直接在viewdidload中添加大头针是无法改变官方的大头针图片的,你只需要换个地方,例如网络请求中,刷新位置按钮然后触发添加大头针的方法即可,不知道你理解我的意思没。

PS:记录自己开发中遇到的坑,不喜勿喷。。。😅

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容