由於MKAnnotation是一個協議,你」必須定義你自己的實現協議的類。
@interface MapAnnotation : NSObject<MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *title;
NSString *subtitle;
}
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;
@end
然後合成在.m文件
@synthesize coordinate,title,subtitle;
在的MapViewController類(即控制器的MKMapView類)上述性質,則需要執行下面的代碼。
MKCoordinateRegion region;
region.center.latitude = latitude; // latitude float value for location
region.center.longitude =longitude; // longitude float value for location
region.span = MKCoordinateSpanMake(spanX, spanY);
MapAnnotation *ann = [[MapAnnotation alloc] init];
ann.title = @"Title";
ann.subtitle = @"subTitle";
ann.coordinate = region.center;
[mapView addAnnotation:ann];
[self.mapView setRegion:region animated:YES];
[mapView setDelegate:self];
註解可以通過view.annotation獲得(視圖是MKAnnotationView而不是id)。所以它應該是'(MapAnnotation *)view.annotation'。 –
Anna
謝謝安娜我編輯了我的答案 – Rocker
與MKPointAnnotation * mAnnotation =(MKPointAnnotation *)view.annotation完美合作; – dastjuso