2015-09-22 3 views
0

Я установил область моей карты и добавил к ней булавку, однако мне было интересно, можно ли изменить внешний вид булавки?Как изменить внешний вид моего MKMapViewAnnotation

Я хотел сделать его похожим на значок, который появляется, когда вы устанавливаете ShowUsersLocation в YES.

Это мой код?

MKCoordinateRegion region = { { 0.0, 0.0 }, { 0.0, 0.0 } }; 
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init]; 
[annotation setCoordinate:mycoordinate]; 
region.center.latitude = mycoordinate.latitude; 
region.center.longitude = mycoordinate.longitude; 
region.span.longitudeDelta = 0.005f; 
region.span.longitudeDelta = 0.005f; 
[mapView addAnnotation:annotation]; 
[mapView setRegion:region animated:NO]; 
+0

Вы можете использовать пользовательскую аннотацию. –

ответ

1

Внедрение метода делегата - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation. See the Documentation.

  1. Установите делегат вида карты в класс, в котором вы настраиваете свои контакты (например, ваш контроллер).
  2. Внедрение метода делегата - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation.

Базовая реализация:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { 
    // Leave the user location pin as it is 
    if ([annotation isKindOfClass:[MKUserLocation class]]) { 
     return nil; 
    } 
    static NSString *annotationReuseIdentifier = @"Annotation"; 
    MKAnnotationView *annotationView = (MKAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier:annotationReuseIdentifier]; 
    if (annotationView == nil) { 
     annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationReuseIdentifier]; 
    } 
    annotationView.annotation = annotation; 

    // Set up your annotation view here 

    return annotationView; 
} 

Если вы хотите больше контроля, как аннотация выглядит, вы можете реализовать свой собственный вид аннотаций (как подкласс MKAnnotationView).

Чтобы показать булавку, как точку пользователя, точку, сделать изображение точки и добавить ее в аннотацию или нарисовать точку с помощью QuartzCore Framework.

Смежные вопросы