大頭針的添加展示
《1》大頭針視圖(MKAnnotationView)在地圖上展示
<1>MKAnnotationView類似于UITableViewCell
<2>MKAnnotation類似于表視圖里面的model
<3>- (nullable MKAnnotationView *)mapView:(MKMapView
*)mapView viewForAnnotation:(id )annotation類似初始化cell的代理方法
<4>如果只添加了annotation會自動添加一個大頭針(pinAnnotationView)
《2》介紹:大頭針由兩部分組成
<1>大頭針模型:MKAnnotation是大頭針數(shù)據(jù)的組成、決定大頭針顯示的內容
所有大頭針模型需要遵守的協(xié)議:MKAnnotationView
必須實現(xiàn)的方法:經(jīng)緯度
<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之后出現(xiàn)插入視圖的詳細視圖(eg:label控件、button、控件)
《12》draggable是否可以拖拽
《13》dragState拖拽的狀態(tài)
需求:長按地圖上的某一點添加一個大頭針大頭針上顯示地圖的真實位置
1、地圖上添加一個長按手勢
2、添加一個大頭針數(shù)據(jù)模型到地圖上
(1)視圖上的點需要轉換成經(jīng)緯度
把經(jīng)緯度轉成point-> convertCoordinate:toPointToView:
把Point轉成經(jīng)緯度 -> convertPoint: toCoordinateFromView:
(2)把數(shù)據(jù)模型需要添加到地圖上
addAnnotation:添加一個
addAnnotations:添加一組
removeAnnotation:移除一個
removeAnnotations:移除一組
**isKindOfClass判斷來自哪個類
*自定義大頭針數(shù)據(jù)模型需要注意:
(1)必須遵守MKAnnotation協(xié)議
(2)必須實現(xiàn)坐標的屬性