MKMapView自定义大头针

如何自定义大头针

——设置 MKMapView 的代理

实现下面的代理方法,返回大头针控件

- ( MKAnnotationView *)mapView:( MKMapView *)mapView viewForAnnotation:( id< MKAnnotation >)annotation;

根据传进来的 ( id < MKAnnotation >)annotation 参数创建并返回对应的大头针控件

代理方法的使用注意

如果返回 nil ,显示出来的大头针就采取系统的默认样式

标识用户位置的蓝色发光圆点,它也是一个大头针,当显示这个大头针时,也会调用代理方法

因此,需要在代理方法中分清楚 ( id < MKAnnotation >)annotation 参数代表自定义的大头针还是蓝色发光圆点

 1 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
 2 {
 3     // 判断annotation的类型
 4     if (![annotation isKindOfClass:[MJTuangouAnnotation class]]) return nil;
 5
 6     // 创建MKAnnotationView
 7     static NSString *ID = @"tuangou";
 8     MKAnnotationView *annoView = [mapView dequeueReusableAnnotationViewWithIdentifier:ID];
 9     if (annoView == nil) {
10         annoView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:ID];
11         annoView.canShowCallout = YES;
12     }
13     // 传递模型数据
14     annoView.annotation = annotation;
15
16     // 设置图片
17         MJTuangouAnnotation *tuangouAnnotation = annotation;
18     annoView.image = [UIImage imageNamed:tuangouAnnotation.icon];
19
20     return annoView;
21 }

MKAnnotationView

地图上的大头针控件是 MKAnnotationView

MKAnnotationView 的属性

 1 @property (nonatomic, strong) id <MKAnnotation> annotation;
 2 大头针模型
 3
 4 @property (nonatomic, strong) UIImage *image;
 5 显示的图片
 6
 7 @property (nonatomic) BOOL canShowCallout;
 8 是否显示标注
 9
10 @property (nonatomic) CGPoint calloutOffset;
11 标注的偏移量
12
13 @property (strong, nonatomic) UIView *rightCalloutAccessoryView;
14 标注右边显示什么控件
15
16 @property (strong, nonatomic) UIView *leftCalloutAccessoryView;
17 标注左边显示什么控件

MKPinAnnotationView

MKPinAnnotationView 是 MKAnnotationView 的子类

MKPinAnnotationView 比 MKAnnotationView 多了 2 个属性

1 @property (nonatomic) MKPinAnnotationColor pinColor;//大头针颜色
2
3 @property (nonatomic) BOOL animatesDrop;//大头针第一次显示时是否从天而降
时间: 2024-09-29 08:56:19

MKMapView自定义大头针的相关文章

【iOS开发-111】自定义大头针Annotation以及2种导航划线的方法介绍

(1)自定义大头针Annotation的样式,也就是定义view,主要的方法是如下,传递一个大头针annotation模型,然后返回一个MKAnnotationView,这个MKAnnotationView有一个image属性,设置这个属性,就能设置它的样式了. -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ } 关键提示,这个MKAnnotati

MapKit之大头针全面解析(使用系统大头针、自定义大头针callout视图、使用图片显示大头针)

首先了解一些相关知识点: 添加大头针到地图 在iOS开发中经常会标记某个位置,需要使用地图标注,也就是大家俗称的"大头针".大头针(Annotations)提供了一种方式来突出地图中具体的位置并可以提供相关的信息.我们能够使用大头针标记具体的地址,兴趣点和其他类型的目的地.当显示在地图上的时候,大头针可以使用图片作为标识,也能够点击大头针弹出小弹框提供相应的链接和具体内容.Figure6-1显示了系统标准的大头针样式标记具体的位置,并提供了小弹框显示额外的信息,使用箭头提示用户点击获取

(八十)MapKit放置系统默认大头针和自定义大头针

有关MapView的显示和定位在上一节已经说明,这一节说明如何在地图上放置大头针,以及设置点击大头针的视图. [系统默认大头针] mapView上放置大头针的方法是调用其addAnnotation:方法,需要注意的是,传入的是模型而不是大头针视图. - (void)addAnnotation:(id <MKAnnotation>)annotation; 通过这个方法,我们可以清楚的看到,annotation模型需要遵循MKAnnotation协议,我们打开这个协议,可以看到如下的内容: @pr

iOS 地图中自定义大头针

1.继承MKAnnotationView. HYAnnotationView.h文件: + (instancetype)annotationViewWithMapView:(MKMapView *)mapView; HYAnnotationView.m文件: #import "HYAnnotation.h"//导入大头针model的头文件 @interface HYAnnotationView() @property (nonatomic, weak) UIImageView *ico

对自定义大头针进行设置

#import <MapKit/MapKit.h> #import "MyPointAnnotation.h" //导入自定义的大头针 @interface MyAnnotationView : MKPinAnnotationView { MyPointAnnotation *myPointAnnotation; } @end #import "MyAnnotationView.h" @implementation MyAnnotationView -

自定义大头针

#import <MapKit/MapKit.h> @interface MyPointAnnotation : MKPointAnnotation //大头针信息 @property (nonatomic,copy) NSString *information; //构造方法 - (id)initWithCoorDinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title subTitle:(NSString *)subT

IOS百度地图之---&gt;第二篇《大头针__简单使用及自定义》

呵呵!大家不要只看帖不回帖么,要不然我都没有积极性了. 第一步:创建一个用来呈现mapview的viewcontroller,不废话直接贴代码 ? ? ? ?BasicMapViewController需要在该类中加入地图的代理并实现相关事件 //? ? 34.2778000000,108.9530980000 ? 数据来源http://www.gpsspg.com/maps.htm #define xian? ? ? ? ? ? CLLocationCoordinate2DMake(34.22

iOS:实现MKAnnotation协议,在地图上设置大头针,点击显示具体的位置信息

如何添加大头针(地标): 通过MapView的addAnnotation方法可以添加一个大头针到地图上 通过MapView的addAnnotations方法可以添加多个大头针到地图上 –(void)addAnnotation:(id <MKAnnotation>)annotation; 说明:需要传入一个遵守了MKAnnotation协议的对象 基本步骤为: <1>新建一个遵守MKAnnotation协议的类: @interface MyAnnotation : NSObject 

iOS地图的显示(大头针)

1 1.导入主头文件 2 #import <MapKit/MapKit.h> 3 MapKit框架使用须知 4 MapKit框架中所有数据类型的前缀都是MK 5 MapKit有一个比较重要的UI控件:MKMapView,专门用于地图显示 6 7 2.跟踪显示用户的位置 8 9 设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置 10 MKUserTrackingModeNone :不跟踪用户的位置 11 MKUserTrackingModeFollow :跟