Пользовательская аннотация местоположения неуместна, если не используется по умолчанию - PullRequest
1 голос
/ 17 августа 2011

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

Поэтому я реализовал mapView: viewForAnnotation: и сделал так, чтобы он всегда возвращал красный вывод, так как местоположение пользователя - единственный вывод, который я покажу на карте.view.

При использовании синего круга по умолчанию местоположение достаточно точное, но при переходе на красный штифт оно довольно много.Это как если бы красный штифт был точно сброшен, а затем перемещен вверх, чтобы он больше не отображал мою текущую позицию.

Это мой код:

- (MKAnnotationView *)mapView:(MKMapView *)_mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    NSLog(@"MapView: Annotation.");

    MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
    [pin setPinColor:MKPinAnnotationColorRed];
    [pin setAnimatesDrop:YES];
    [pin setCanShowCallout:NO];

    return pin;
}

Я использую mapView: didAddAnnotationViews:центрировать вид карты по моему текущему местоположению.

- (void)mapView:(MKMapView *)_mapView didAddAnnotationViews:(NSArray *)views
{
    for(MKAnnotationView *annotationView in views)
    {
        if(annotationView.annotation == _mapView.userLocation)
        {
            MKCoordinateRegion region;
            MKCoordinateSpan span;

            span.latitudeDelta = 0.20;
            span.longitudeDelta = 0.20;

            CLLocationCoordinate2D location = [[_mapView userLocation] coordinate];

            region.span = span;
            region.center = location;

            [_mapView setRegion:region animated:YES];
            [_mapView regionThatFits:region];
        }
    }
}

Кто-нибудь знает, почему моя аннотация больше не помещается правильно при использовании красного штифта вместо вида аннотации по умолчанию?

1 Ответ

0 голосов
/ 18 августа 2011

Настройка [pin setAnimatesDrop:NO] вместо YES решает эту проблему.

...