Пинты пользовательских аннотаций влияют на расположение пользователя mkmapview на Iphone - PullRequest
0 голосов
/ 31 декабря 2011

Обычно, если у вас включена функция showuserlocation и вы собираетесь перейти к просмотру карты, синяя точка будет динамически увеличивать текущее местоположение пользователя. Тем не менее, если пользовательский пин-код аннотации создается для другой цветовой цели, то способность showuserlocation исчезнет. Код ниже newAnnotation является виновником. Как у вас как пользовательский пин-код, так и возможность показа пользователей не мешали.

 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
 {

 if ([[annotation title] isEqualToString:@"Destination"])
  {
MKPinAnnotationView *newAnnotation = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"greenpin"];
newAnnotation.pinColor = MKPinAnnotationColorGreen;
newAnnotation.animatesDrop = YES;
newAnnotation.canShowCallout = YES;
return newAnnotation;
 }

}

1 Ответ

2 голосов
/ 31 декабря 2011

Попробуйте это

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    // if it's the user location, just return nil.
    if ([annotation isKindOfClass:[MKUserLocation class]])
        return nil;

    if ([[annotation title] isEqualToString:@"Destination"])
    {
        MKPinAnnotationView *newAnnotation = [[MKPinAnnotationView alloc]  initWithAnnotation:annotation reuseIdentifier:@"greenpin"];
        newAnnotation.pinColor = MKPinAnnotationColorGreen;
        newAnnotation.animatesDrop = YES;
        newAnnotation.canShowCallout = YES;
        return newAnnotation;
    }
}
...