自定义注释引脚会干扰Iphone上的mkmapview的showuserlocation

时间:2011-12-31 06:08:06

标签: iphone mkmapview mkannotation

通常,如果您启用了showuserlocation并转到mapview,则会动态地将蓝点放大到用户的当前位置。但是,如果为不同的颜色目的创建自定义注释引脚,则showuserlocation能力将消失。 newAnnotation下面的代码是罪魁祸首。你如何同时拥有自定义引脚和showuserlocation能力不受干扰。

 - (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 个答案:

答案 0 :(得分:2)

试试这个

- (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;
    }
}