UI(三十六)地图上的大头针
大头针的添加展示
《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》detailCalloutAccessoryView iOS9之后出现 插入视图的详细视图(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)必须实现坐标的属性