MKMapView自定义大头针
生活随笔
收集整理的這篇文章主要介紹了
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>)annotation2 {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;//大頭針第一次顯示時是否從天而降轉載于:https://www.cnblogs.com/ranger-jlu/p/4301312.html
總結
以上是生活随笔為你收集整理的MKMapView自定义大头针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SmartDraw2008破解过程总结
- 下一篇: Git show-branch显示提交信