如果引脚的标题是“HQ”,我创建了一个if-then语句来显示一个紫色引脚。绿色针脚正确显示。有谁知道为什么紫色针的针脚颜色仍然是红色的?
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if([annotation isKindOfClass:[MyAnnotation class]])
{
static NSString *annotationIdentifier=@"annotationIdentifier";
MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier];
if(annotationView)
{
annotationView.annotation = annotation;
}
else
{
annotationView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:annotationIdentifier];
if([[annotationView.annotation title] isEqualToString:@"HQ"])
{
//The pin for the HQ should be purple
annotationView.pinColor = MKPinAnnotationColorPurple;
[annotationView setAnimatesDrop:YES];
}
else
{
//All other new pins should be "green" by default
annotationView.pinColor = MKPinAnnotationColorGreen;
annotationView.canShowCallout = YES;
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[annotationView setAnimatesDrop:YES];
}
}
return annotationView;
}
return nil;
}
答案 0 :(得分:0)
地图重用注释视图(或提供这样做)
与tableView一样重复使用单元格。
现在在初始化时你设置了引脚颜色,但重新使用时却没有。所以一个引脚总是颜色相同。
为不同的案例使用不同的重用标识符!
static NSString *annotationIdentifier= ([annotation.title isEqualToString:@"HQ"]) ? @"HQ" : "OTHER";