自定义大头针

作者: IIronMan | 来源:发表于2016-07-04 20:48 被阅读182次
{大头针效果图

自定义大头针其实没什么东西,讲讲简单的自定义大头针吧!


自定义大头针
  • 1.需要定义大头针模型(里面至少有三个属性)

    #import <Foundation/Foundation.h>
    #import <MapKit/MapKit.h>
    
     @interface AnnotationModel : NSObject<MKAnnotation>
    
    /*
    
      1.导入框架
    
      2.遵守大头针模型的协议
    
      3.重写3个属性
    
    */
    
    /*
       大头针的位置
    */
    @property(nonatomic,assign) CLLocationCoordinate2D coordinate;
    /*
      大头针的标题
    */
    @property(nonatomic,copy) NSString *title;
    /*
      大头针的子标题
    */
    @property(nonatomic,copy) NSString *subtitle;
    
  • 2.在此我是采取单击mapView的方式来获取大头针的添加(给mapView添加手势),调用手势方法来添加大头针

添加大头针
  • 3.在大头针添加的时候回调用一个方法(在里面进行对大头针的各种设置):里面有很多的细节,需要的就认真研究

     -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
     {
           //判断当前大头针是不是用户位置的数据模型
     if ([annotation isKindOfClass:[MKUserLocation class]])
    {
      //返回nil系统自动处理
      return nil;
    }
    
    //1.从缓存池里面取
    
    //注意:默认情况下 MKAnotationView 是无法显示的,如果想自定义大头针,可以使用MKNotationView的子类MKPinAnnotationView
    
     static NSString *annotationID = @"annotationID";
    
     //判断当前的大头针数据模型是不是用户位置的数据模型
    
     //注意:如果是自定义的大头针,默认情况下大头针是不会显示标题的,需要自己手动显示设置
     MKAnnotationView *annotationView = [self.mapView dequeueReusableAnnotationViewWithIdentifier:annotationID];
    
     //2.如果缓存池中没有,创建一个新的
      if (!annotationView) {
      
      annotationView = [[MKAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:annotationID];
      //设置打头阵的颜色
     // annotationView.pinTintColor = [UIColor purpleColor];
      //设置大头针从天而降
     // annotationView.animatesDrop = YES;
      //设置大头针标题是否显示
      annotationView.canShowCallout = YES;
      //设置大头针显示区域的偏移位
      //annotationView.calloutOffset = CGPointMake(-50, 0);
      //设置大头针左边的辅助视图
      annotationView.leftCalloutAccessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"user"]];
      //设置大头针右边的辅助视图
      annotationView.rightCalloutAccessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"电话"]];
      //设置大头针的拖动
      annotationView.draggable = YES;
      
     }
    
    //设置大头针的图片
    //注意:如果你是使用MKPinAnnotationView创建的自定义大头针,那么设置图片无效,因为系统内部会做一下操作覆盖掉我们自己的设置
    annotationView.image = [UIImage imageNamed:@"airplane"];
    
     //3.给大头针View设置数据
      
     annotationView.annotation = annotation;
    
    //4.返回大头针view
    
     return annotationView;
    
     }
    
  • 4.具体的代码

相关文章

  • 大头针Annotation

    自定义大头针 使用大头针 点击添加大头针 自定义大头针颜色和动画 系统大头针的处理 自定义大头针图片 修改大头针模...

  • iOS 地图开发(MapKit)(二)

    相关类的介绍:MKAnnotation(大头针协议)大头针数据类(自定义的大头针需要遵守大头针协议)MKPoint...

  • iOS 系统自带API地图开发相关(二)

    地图-自定义大头针 关于大头针视图分两类: MKPinAnnotationView : apple自带的大头针,可...

  • 自定义大头针

    自定义大头针其实没什么东西,讲讲简单的自定义大头针吧! 1.需要定义大头针模型(里面至少有三个属性)#import...

  • 高德地图---iOS笔记摘录

    概念 使用 地图显示 交互 显示 计算 其他 1.1 大头针 自定义大头针: MAPointAnnotation ...

  • 百度地图大头针点击之后不调用mapView: viewForAn

    1.如何你自定义的大头针,看看大头针的UIImageView的userInteractionEnabled属性有没...

  • 地图高级 - 自定义大头针

    地图高级 - 自定义大头针 1. 理论支撑 2. 模拟实现系统大头针 实现当添加大头针数据模型时,地图回调的代理方...

  • iOS 自定义大头针

    一、自定义大头针 需求 需求:鼠标拖拽是在地图的哪个位置, 就在对应的位置加一个大头针,并反地理编码大头针所在城市...

  • 高德地图calloutView点击无响应,解决办法

    因为自定义的气泡是添加到大头针上的,而大头针的size只有下面很小一部分,所以calloutView是在大头针的外...

  • 自定义大头针Annotation

    (1)自定义大头针Annotation的样式,也就是定义view,主要的方法是如下,传递一个大头针annotati...

网友评论

    本文标题:自定义大头针

    本文链接:https://www.haomeiwen.com/subject/ywbqjttx.html