大头针的添加展示
《1》大头针视图(MKAnnotationView)在地图上展示
<1>MKAnnotationView类似于UITableViewCell
<2>MKAnnotation类似于表视图里面的model
<3>- (nullable MKAnnotationView *)mapView:(MKMapView
*)mapView viewForAnnotation:(id )annotation类似初始化cell的代理方法
<4>如果只添加了annotation会自动添加一个大头针(pinAnnotationView)
《2》介绍:大头针由两部分组成
<1>大头针模型:MKAnnotation是大头针数据的组成、决定大头针显示的内容
所有大头针模型需要遵守的协议:MKAnnotationView
必须实现的方法:经纬度
<2>大头针视图:
MKAnnotationView(自己随意定义大头针的样式)
MKPinAnnotationView(不能改变大头针视图的图片、但可以改变大头针的颜色)
animatesDrop掉落动画的属性
是用于显示内容的view可以定义显示视图的样式
MKAnnotationView可以自定义
《1》初始化:
initWithAnnotation:reuseIdentifier:
《2》image设置大头针图片
《3》centerOffset
中心点的偏移量x正右y正下
《4》calloutOffset插图的偏移量
《5》enabled是否激活默认YES
《6》highlighted是否高亮默认NO
《7》selected是否选中
《8》*canShowCallout设置是否可以显示插入视图
《9》leftCalloutAccessoryView左侧插入视图的附加视图
《10》rightCalloutAccessoryView:右侧插入视图的附加视图
《11》detailCalloutAccessoryViewiOS9之后出现插入视图的详细视图(eg:label控件、button、控件)
《12》draggable是否可以拖拽
《13》dragState拖拽的状态
需求:长按地图上的某一点添加一个大头针大头针上显示地图的真实位置
1、地图上添加一个长按手势
2、添加一个大头针数据模型到地图上
(1)视图上的点需要转换成经纬度
把经纬度转成point-> convertCoordinate:toPointToView:
把Point转成经纬度 -> convertPoint: toCoordinateFromView:
(2)把数据模型需要添加到地图上
addAnnotation:添加一个
addAnnotations:添加一组
removeAnnotation:移除一个
removeAnnotations:移除一组
**isKindOfClass判断来自哪个类
*自定义大头针数据模型需要注意:
(1)必须遵守MKAnnotation协议
(2)必须实现坐标的属性