Вот простой базовый пример, состоящий из пары шагов
1) Добавление следующих аннотаций в viewDidLoad
будет работать просто отлично
MKPointAnnotation *point1 = [[MKPointAnnotation alloc] init];
CLLocationCoordinate2D c1;
c1.latitude = 46.469391;
c1.longitude = 30.740883;
point1.coordinate = c1;
point1.title = @"Minsk, Belarus";
[self.mapView addAnnotation:point1];
MKPointAnnotation *point2 = [[MKPointAnnotation alloc] init];
CLLocationCoordinate2D c2;
c2.latitude = 46.469391;
c2.longitude = 30.740883;
point2.coordinate = c2;
point2.title = @"Odessa, Ukraine";
[self.mapView addAnnotation:point2];
2) В mapView: viewForAnnotation MKMapViewDelegateобеспечить возможность многократного просмотра аннотаций, например:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKPointAnnotation class]]) {
MKMarkerAnnotationView* annotationView = (MKMarkerAnnotationView *) (MKMarkerAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:@"Jacky.S"];
if (annotationView == nil) {
annotationView = [[MKMarkerAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Jacky.S"];
annotationView.enabled = YES;
annotationView.clusteringIdentifier = @"pins";
// annotationView.glyphImage = [UIImage imageNamed:@"we can use a nice image instead of the default pins"];
} else {
annotationView.annotation = annotation;
annotationView.clusteringIdentifier = @"pins";
}
return annotationView;
}
return nil;
}
Не забудьте установить MKMapViewDelegate
в UIViewController
[self.mapView setDelegate:self];
Обновление Только что закончили публиковать Гист показывает, как подкласс MKMarkerAnnotationView